WebApp基础01-设置读取assets目录下文件
要讀取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目录下文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: redis mysql原理_MYSQL
- 下一篇: 信息系统分析与设计杨选辉_信息系统分析与