要读取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" ><TextViewandroid: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="1"android:versionName="1.0" ><uses-sdkandroid:minSdkVersion="8"android:targetSdkVersion="18" /><uses-permission android:name="android.permission.INTERNET"/><applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme" ><activityandroid: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;@Overrideprotected 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则是系统自身浏览器*/@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {view.loadUrl(url);return true;}});webView.setWebChromeClient(new WebChromeClient() {@Overridepublic void onProgressChanged(WebView view, int newProgress) {// newProgress当前进度if (newProgress == 100) {// 加载完毕,关闭进度条
                    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();}}});}@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {// keyCode代表按键的数字标示符if (keyCode == KeyEvent.KEYCODE_BACK) {if (webView.canGoBack()) {webView.goBack();return true;} else {System.exit(0);}}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;@Overrideprotected 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则是系统自身浏览器*/@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {view.loadUrl(url);return true;}});webView.setWebChromeClient(new WebChromeClient() {@Overridepublic void onProgressChanged(WebView view, int newProgress) {// newProgress当前进度if (newProgress == 100) {// 加载完毕,关闭进度条
                    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();}}});}@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {// keyCode代表按键的数字标示符if (keyCode == KeyEvent.KEYCODE_BACK) {if (webView.canGoBack()) {webView.goBack();return true;} else {System.exit(0);}}return super.onKeyDown(keyCode, event);}}

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

转载于:https://www.cnblogs.com/wesky/p/3962784.html

WebApp基础01-设置读取assets目录下文件相关推荐

  1. Android读取assets目录下文件数据内容

    Android读取assets目录下文件数据内容 Android的体系架构设计中,assets目录下的数据内容(图片.文件等等)将不会被Android系统压缩.二次处理等,assets目录下的文件 ...

  2. Android:读取assets目录下文件(二)

    在上篇博客里,介绍了如何读取assets目录下的txt文件.在这里,介绍如何读取xml文件. xml文件内容如下: <?xml version="1.0" encoding= ...

  3. 安卓读取mysql数据库文件路径_Android开发实现读取assets目录下db文件的方法示例...

    本文实例讲述了Android开发实现读取assets目录下db文件的方法.分享给大家供大家参考,具体如下: 最近准备打算写一个关于天气预报的app,偶然的机会在一大神的博客上看到了一个获取天气的api ...

  4. android读取mysql数据库文件_Android开发系列(十七):读取assets目录下的数据库文件...

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

  5. java读取resouces目录下文件

    resources中存放一些个资源文件,比如properties文件等,编译好会自动将这里边的文件复制到target/classes里去.获取资源文件的方法说明: XXX.class.getResou ...

  6. android assets 文件夹 复制,Android 中 Assets目录下 文件或文件夹的复制

    1.文件或文件夹的复制 /* * 下面两个方法不是AsyncTask的接口 * * copyFileOrDir 目录复制 * copyFile 文件复制 */ private void copyFil ...

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

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

  8. android 获取assets目录下文件的路径

    暴力直接获取 String path = "file:///android_asset/icon_wm.png"; 先把文件读成流,在转化地址 String path = null ...

  9. nuxt引用static或者assets目录下资源注意事项

    Nuxt 服务器启动后,会将static文件目录映射到根路径/下. 所以想引用static目录下图片,直接写法如下 <img src="/log.png"/> 引用as ...

最新文章

  1. 使用PermissionsDispatcher轻松解决Android权限问题
  2. 数字证书文件格式(cer和pfx)的区别
  3. yum之如何手动创建本地yum仓库
  4. linux安装包安装mysql5.7
  5. 消息发送到topic多个MessageQueue
  6. Spring-Cloud中的统一配置中心
  7. interp1函数matlab_【原创】干货:用MATLAB搭建电化学单粒子模型(中)
  8. centos7光盘修复 grub_centos7修复grub2
  9. PHP CURL 异步测试
  10. easyexcel和poi是否有版本冲突_easyexcel--解决poi大文件发生OOM问题
  11. Golang包管理工具之govendor的使用
  12. 使用Mybatis如何对Mysql进行分页功能?
  13. 谷粒商城:14.全文检索ElasticSearch
  14. scvmm管理hyper-v克隆主机(二)
  15. 利用POI导出excel
  16. tomcat下载安装步骤(超详细)
  17. 用曲率,挠率反求曲线方程!(作业捷径篇 续集)
  18. CCA分析图如何解读_欧易/鹿明生物云平台:点点鼠标,轻松完成RDA/CCA分析
  19. 如何将计算机恢复到桌面快捷方式,怎样还原电脑系统默认的Windows快捷方式及其图标呀?...
  20. 任务栏文件资源管理器打开特别卡

热门文章

  1. [Linux C]递归遍历指定目录,以目录树形式展示
  2. [react] React的触摸事件有哪几种?
  3. 前端学习(3094):vue+element今日头条管理-反馈
  4. 前端学习(2974):组件重定向
  5. 工作318:uni-切换tabber修改状态修饰
  6. 工作204:进行输入成功后验证
  7. 前端学习(1925)vue之电商管理系统电商系统之通过一层for循环渲染
  8. 前端学习(1335):mongoDB导入数据
  9. 前端学习(771):小结
  10. 第三十九期:收藏 | 第一次有人把“分布式事务”讲的这么简单明了