Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Andorid WebView簡介(基本顯示篇)

Andorid WebView簡介(基本顯示篇)

編輯:Android開發實例

本文希望通過本次對WebView組件的使用講解,可以讓各位了解到WebView組件的詳細使用:
一、網絡內容
1、LoadUrl直接顯示網頁內容(單獨顯示網絡圖片)
比如:
webView.loadUrl("http://www.google.com");
2、LoadData顯示中文網頁內容(含空格的處理)

webView.loadData(URLEncoder.encode(data, encoding),"text/html", "utf-8");  
二、本地文件內容
比如:webView.loadUrl("file:///android_asset/test.html"); 
三、APK包內文件
1、LoadUrl顯示APK中Html和圖片文件  webView.loadUrl("file:///android_asset/test.html");     webView.loadUrl("file:///android_asset/icon.png");    對於APK本地文件應該存放在其Android工程的assets 文件中,url為file:///android_asset/開頭的形式,
比如webView.loadUrl("file:///android_asset/XX.html"), 四、使用loadDataWithBaseURL進行本地數據與網絡文件的混合顯示。 我可以在本地數據中引用一些網絡文件,這就可以讓本地數據與網絡文件的混合顯示 。 在引用文件時,可以采用覺得URL,也可以使用相對URL。使用相對URL時,請采用loadDataWithBaseURL,以引用文件的指明起始地址。
示例1                 String baseURL="http://img6.ph.126.net";                 String data="Here is a gorgeous girl <img src='hBiG96B8egigBULxUWcOpA==/109212290980771276.jpg'>";                 webView.loadDataWithBaseURL(baseURL, data,"text/html",  "utf-8", ""); 

運行結果見圖二。
注意:需要在AndroidManifest.xml文件中添加權限,否則會出現Web page not available錯誤。
  <uses-permission android:name="android.permission.INTERNET" />
res/layout/main.xml

Xml代碼
 

  1. < ?xml version="1.0" encoding="utf-8"?>   
  2.    
  3. < LINEARLAYOUT android:layout_height="fill_parent" android:layout_width="fill_parent" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android">   
  4.    
  5. < WEBVIEW android:layout_height="fill_parent" android:layout_width="fill_parent" android:id="@+id/webview" />   
  6.    
  7. < /LINEARLAYOUT>   
  8.    
  9. < ?xml version="1.0" encoding="utf-8"?>   
  10.    
  11. < LINEARLAYOUT android:layout_height="fill_parent" android:layout_width="fill_parent" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android">   
  12.    
  13. < WEBVIEW android:layout_height="fill_parent" android:layout_width="fill_parent" android:id="@+id/webview" />   
  14.    
  15. < /LINEARLAYOUT>   

     
    Example_webview.java

Java代碼

 

  1. package cn.coolworks;    
  2.    
  3. import java.net.URLEncoder;    
  4.    
  5. import android.app.Activity;    
  6.    
  7. import android.os.Bundle;    
  8.    
  9. import android.webkit.WebView;    
  10.    
  11. public class Example_webview extends Activity {    
  12.    
  13. WebView webView;    
  14.    
  15. final String mimeType = "text/html";    
  16.    
  17. final String encoding = "utf-8";    
  18.    
  19. /** Called when the activity is first created. */    
  20.    
  21. @Override    
  22.    
  23. public void onCreate(Bundle savedInstanceState) {    
  24.    
  25. super.onCreate(savedInstanceState);    
  26.    
  27. setContentView(R.layout.main);    
  28.    
  29. webView = (WebView) findViewById(R.id.webview);    
  30.    
  31. webView.getSettings().setJavaScriptEnabled(true);    
  32.    
  33. //webHtml();    
  34.     
  35.    
  36. //webImage();   
  37.    
  38. //localHtmlZh();   
  39.    
  40. //localHtmlBlankSpace();   
  41.    
  42. //localHtml();   
  43.    
  44. // localImage();    
  45.    
  46. localHtmlImage();    
  47.    
  48. }    
  49.    
  50. /**    
  51.    
  52. * 直接網頁顯示    
  53.    
  54. */    
  55.    
  56. private void webHtml() {    
  57.    
  58. try {    
  59.    
  60. webView.loadUrl("http://www.google.com");    
  61.    
  62. } catch (Exception ex) {    
  63.    
  64. ex.printStackTrace();    
  65.    
  66. }    
  67.    
  68. }    
  69.    
  70. /**    
  71.    
  72. * 直接網絡圖片顯示    
  73.    
  74. */    
  75.    
  76. private void webImage() {    
  77.    
  78. try {    
  79.    
  80. webView.loadUrl("http://www.gstatic.com/codesite/ph/images/code_small.png");    
  81.    
  82. } catch (Exception ex) {    
  83.    
  84. ex.printStackTrace();    
  85.    
  86. }    
  87.    
  88. }    
  89.    
  90. /**    
  91.    
  92. * 中文顯示    
  93.    
  94. */    
  95.    
  96. private void localHtmlZh() {    
  97.    
  98. try {    
  99.    
  100. String data = "測試含有 中文的Html數據";    
  101.    
  102. // utf-8編碼處理(在SDK1.5模擬器和真實設備上都將出現亂碼,SDK1.6上能正常顯示)    
  103.    
  104. //webView.loadData(data, mimeType, encoding);    
  105.    
  106. // 對數據進行編碼處理(SDK1.5版本)    
  107.    
  108. webView.loadData(URLEncoder.encode(data, encoding), mimeType, encoding);    
  109.    
  110. } catch (Exception ex) {    
  111.    
  112. ex.printStackTrace();    
  113.    
  114. }    
  115.    
  116. }    
  117.    
  118. /**    
  119.    
  120. * 中文顯示(空格的處理)    
  121.    
  122. */    
  123.    
  124. private void localHtmlBlankSpace() {    
  125.    
  126. try {    
  127.    
  128. String data = " 測試含有空格的Html數據 ";    
  129.    
  130. // 不對空格做處理    
  131.    
  132. webView.loadData(URLEncoder.encode(data, encoding), mimeType,  encoding);    
  133.    
  134. //webView.loadData(data, mimeType, encoding);    
  135.    
  136. // 對空格做處理(在SDK1.5版本中)    
  137.    
  138. webView.loadData(URLEncoder.encode(data, encoding).replaceAll(   "\+", " "), mimeType, encoding);    
  139.    
  140. } catch (Exception ex) {    
  141.    
  142. ex.printStackTrace();    
  143.    
  144. }    
  145.    
  146. }    
  147.    
  148. /**    
  149.    
  150. * 顯示本地圖片文件    
  151.    
  152. */    
  153.    
  154. private void localImage() {    
  155.    
  156. try {    
  157.    
  158. // 本地文件處理(如果文件名中有空格需要用+來替代)    
  159.    
  160. webView.loadUrl("file:///android_asset/icon.png");    
  161.    
  162. } catch (Exception ex) {    
  163.    
  164. ex.printStackTrace();    
  165.    
  166. }    
  167.    
  168. }    
  169.    
  170. /**    
  171.    
  172. * 顯示本地網頁文件    
  173.    
  174. */    
  175.    
  176. private void localHtml() {    
  177.    
  178. try {    
  179.    
  180. // 本地文件處理(如果文件名中有空格需要用+來替代)    
  181.    
  182. webView.loadUrl("file:///android_asset/test.html");    
  183.    
  184. } catch (Exception ex) {    
  185.    
  186. ex.printStackTrace();    
  187.    
  188. }    
  189.    
  190. }    
  191.    
  192. /**    
  193.    
  194. * 顯示本地圖片和文字混合的Html內容    
  195.    
  196. */    
  197.    
  198. private void localHtmlImage() {    
  199.    
  200. try {    
  201.    
  202. String data = "測試本地圖片和文字混合顯示,這是APK裡的圖片";    
  203.    
  204. // SDK1.5本地文件處理(不能顯示圖片)    
  205.    
  206. // webView.loadData(URLEncoder.encode(data, encoding), mimeType,    
  207.    
  208. // encoding);    
  209.    
  210. // SDK1.6及以後版本    
  211.    
  212. // webView.loadData(data, mimeType, encoding);    
  213.    
  214. // 本地文件處理(能顯示圖片)    
  215.    
  216. webView.loadDataWithBaseURL("about:blank", data, mimeType, encoding, "");    
  217.    
  218. } catch (Exception ex) {    
  219.    
  220. ex.printStackTrace();    
  221.    
  222. }    
  223.    
  224. }    
  225.    
  226. }   


這就是WebView組件的使用詳解,如果您對WebView組件及Android開發有什麼新的使用心得可以發Email:[email protected],51CTO將與您一起分享!
 

圖2:  
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved