要读取assets下的目录,只需要修改三个地方即可

1.res/layout/activity_main.xml

2.AndroidManifest.xml

3.src\com\example\lcy\MainActivity.java

第一步.res/layout/activity_main.xml加入代码,需要在xml布局文件中声明WebView组件

<WebView
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>

全部代码

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" > <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
<WebView
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/> </RelativeLayout>

第二部,AndroidManifest.xml 代码

加入代码:由于不是用Intent去调用系统组件,所以我们需要对程序进行权限的允许,在AndroidManifest.xml里对程序开放Inter权限

<uses-permission android:name="android.permission.INTERNET"/>

如果出现  webpage not available 在AndroidManifest.xml可以加入以上代码

全部代码

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.lcy"
android:versionCode=""
android:versionName="1.0" > <uses-sdk
android:minSdkVersion=""
android:targetSdkVersion="" />
<uses-permission android:name="android.permission.INTERNET"/> <application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.lcy.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application> </manifest>

 

3.src\com\example\lcy\MainActivity.java 在Activity中实例化WebView,并且可通过loadUrl(url)方法打开指定url资源,加入代码

public class MainActivity extends Activity {

    private WebView webView;
//private String url = "http://www.baidu.com";
private String url = "file:///android_asset/www/index.html";
private ProgressDialog progressDialog; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initWebView();
} private void initWebView() {
webView = (WebView) findViewById(R.id.webview);// 获取控件
webView.loadUrl(url);// 载入指定url(系统自带浏览器,若想用自身webview需要重写方法,提供client)
WebSettings webSettings = webView.getSettings();// 获取配置信息
webSettings.setJavaScriptEnabled(true);// 是否允许加载js文件
webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);// 打开缓存
webView.setWebViewClient(new WebViewClient() {
/**
* 重写shouldOverrideUrlLoading,返回值若为true则用webview,false则是系统自身浏览器
*/
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}); webView.setWebChromeClient(new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, int newProgress) {// newProgress当前进度
if (newProgress == ) {
// 加载完毕,关闭进度条
closeProgressDialog();
} else {
//加载未完成,显示进度
showProgressDialog(newProgress);
}
super.onProgressChanged(view, newProgress);
} private void closeProgressDialog() {
progressDialog.dismiss();
progressDialog=null; } private void showProgressDialog(int newProgress) {
if (progressDialog == null) {
progressDialog = new ProgressDialog(MainActivity.this); progressDialog.setTitle("页面正在加载中..请稍后");
progressDialog
.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);//设置进度条样式
progressDialog.setProgress(newProgress);//设置进度
progressDialog.show();
} else {
progressDialog.setProgress(newProgress);
progressDialog.show();
} }
}); } @Override
public boolean onKeyDown(int keyCode, KeyEvent event) {// keyCode代表按键的数字标示符
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (webView.canGoBack()) {
webView.goBack();
return true;
} else {
System.exit();
}
} return super.onKeyDown(keyCode, event);
} }

全部代码(有部分代码不用用管它,增加了public 、private 会自动增加,保证把上面的代码加进去就可以了)

package com.example.lcy;

import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient; public class MainActivity extends Activity { private WebView webView;
//private String url = "http://www.baidu.com";
private String url = "file:///android_asset/www/index.html";
private ProgressDialog progressDialog; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initWebView();
} private void initWebView() {
webView = (WebView) findViewById(R.id.webview);// 获取控件
webView.loadUrl(url);// 载入指定url(系统自带浏览器,若想用自身webview需要重写方法,提供client)
WebSettings webSettings = webView.getSettings();// 获取配置信息
webSettings.setJavaScriptEnabled(true);// 是否允许加载js文件
webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);// 打开缓存
webView.setWebViewClient(new WebViewClient() {
/**
* 重写shouldOverrideUrlLoading,返回值若为true则用webview,false则是系统自身浏览器
*/
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}); webView.setWebChromeClient(new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, int newProgress) {// newProgress当前进度
if (newProgress == ) {
// 加载完毕,关闭进度条
closeProgressDialog();
} else {
//加载未完成,显示进度
showProgressDialog(newProgress);
}
super.onProgressChanged(view, newProgress);
} private void closeProgressDialog() {
progressDialog.dismiss();
progressDialog=null; } private void showProgressDialog(int newProgress) {
if (progressDialog == null) {
progressDialog = new ProgressDialog(MainActivity.this); progressDialog.setTitle("页面正在加载中..请稍后");
progressDialog
.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);//设置进度条样式
progressDialog.setProgress(newProgress);//设置进度
progressDialog.show();
} else {
progressDialog.setProgress(newProgress);
progressDialog.show();
} }
}); } @Override
public boolean onKeyDown(int keyCode, KeyEvent event) {// keyCode代表按键的数字标示符
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (webView.canGoBack()) {
webView.goBack();
return true;
} else {
System.exit();
}
} return super.onKeyDown(keyCode, event);
} }

详情查看  http://www.cnblogs.com/lichenwei/p/3959345.html

WebApp基础01-设置读取assets目录下文件的更多相关文章

  1. [转]读取assets目录下的数据库文件

    在做Android应用的时候,不可避免要用到数据库.但是当我们把应用的apk部署到真机上的时候,已经创建好的数据库及其里边的数据是不能随着apk一起安装到真机上的. (PS:这篇博客解决了我前面博客中 ...

  2. QLGame 2d Engine Android端环境搭建(通过jni读取assets目录的文件)

    QLGame 2d Engine win端已经实现了一个动物的动画了,初步的东西已经完成,考虑在Android端也实现这些基本的东西,这样跨平台的引擎也就实现了! 要在Android下编程,首先要实现 ...

  3. Android读取assets目录下的资源

    1.获取资源的输入流 资源文件 sample.txt 位于 $PROJECT_HOME/assets/ 目录下,可以在 Activity 中通过 Context.getAssets().open(“s ...

  4. SpringBoot打成jar包后,获取不到读取resources目录下文件路径的问题

    问题描述: Springboot没有打成jar之前,可以成功获取读取resources目录下xxx.json文件的 路径.但是打成jar包后,接口调不通,原因是获取不到文件的路径. 原因: 在本地进行 ...

  5. IDEA中读取 resource目录下文件

    1. 资源文件 2. 加载文件 public void test() { try { System.out.println("begin test"); String filepa ...

  6. 发布jar包到服务器读取resource目录下文件

    * 解决:当项目打包成jar之后resources路径下面的证书文件访问不到* 思路:* 1.运行时先复制一个jar* 2.将复制的jar解压到jar文件目录* 3.删除复制的jar跟解压的非证书文件 ...

  7. SAS 读取指定目录下文件列表宏

    OPTIONS PS=MAX LS=MAX NOCENTER SASMSTORE=SASUSER MSTORED MAUTOSOURCE;/*获取指定文件夹的指定类型的所有文件*/%MACRO GET ...

  8. Eclipse 读取config目录下文件

    最近在一个项目,在项目下新建了一个config配置文件夹,添加一个配置文件config.properties. 使用classpath:config.properties方式加载配置文件, 具体实现代 ...

  9. 关于Linux上面无法读取资源目录下文件的问题

    一开始我的代码是这样子的,读取本地子路径下的json文件 代码运行的时候,在window是可以正常的 @Override public String getBannerStr() { String s ...

随机推荐

  1. elasticsearch-查询基础篇

    elasticsearch的查询有两部分组成:query and filter. 两者的主要区别在于:filter是不计算相关性的,同时可以cache.因此,filter速度要快于query. 先记录 ...

  2. centos中crontab(计时器)用法详解

    关于crontab: crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行.该 ...

  3. 【BZOJ 2843】极地旅行社

    复习一下$LinkCutTree$的模板. #include<cstdio> #include<cstring> #include<algorithm> #defi ...

  4. lightoj 1074 spfa判断负环

     Extended Traffic Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu Sub ...

  5. 【HDU 5833】Zhu and 772002(异或方程组高斯消元)

    300个最大质因数小于2000的数,选若干个它们的乘积为完全平方数有多少种方案. 合法方案的每个数的质因数的个数的奇偶值异或起来为0. 比如12=2^2*3,对应的奇偶值为01(2的个数是偶数为0,3 ...

  6. Too many connections解决方案

    原因:  my.ini 中设定的并发连接数太少或者系统繁忙导致连接数被占满. 连接数超过了 MySQL 设置的值,与 max_connections 和 wait_timeout  都有关. wait ...

  7. Trinity min_kmer_cov

    A high min_kmer value was used to reduce noise in the assembly and to identify only transcripts that ...

  8. NGUI之输入文本框的使用

    ToolBar中的两个红圈 另,代码如下:只需要定义一个变量即可,然后将控件drag到那里,真的是灰常方便呀 还有一个就是保存了(OK的响应),可以简单地理解为存档或读档

  9. springmvc使用RSA算法加密表单

    今天被吐槽在客户端用js对密码进行md5加密其实也不见得安全.这种做法其实不见得有什么作用,学过计算机网络都知道,在网上抓一个包是很简单的事,就算别人抓包抓不到你原始密码,用这个md5后的密码一样可以 ...

  10. 网易免费/付费163企业邮smtp服务器地址

    免费:smtp.ym.163.com 25/pop.ym.163.com 110 付费:smtp.qiye.163.com 25/pop.qiye.163.com 110