分享

Android开发之WebView组件的使用详解

 小飞苑 2011-05-21

51CTO曾经独家推荐过Android开发应用详解的专题,本文希望通过本次对WebView组件的使用讲解,可以让各位了解到WebView组件的详细使用:

网络内容

1、LoadUrl直接显示网页内容(单独显示网络图片)

2、LoadData显示中文网页内容(含空格的处理)

APK包内文件

1、LoadUrl显示APK中Html和图片文件

2、LoadData(loadDataWithBaseURL)显示APK中图片和文字混合的Html内容

res/layout/main.xml

Xml代码

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

Java代码

  1. package cn.coolworks;
  2. import java.net.URLEncoder;
  3. import android.app.Activity;
  4. import android.os.Bundle;
  5. import android.webkit.WebView;
  6. public class Example_webview extends Activity {
  7. WebView webView;
  8. final String mimeType = "text/html";
  9. final String encoding = "utf-8";
  10. /** Called when the activity is first created. */
  11. @Override
  12. public void onCreate(Bundle savedInstanceState) {
  13. super.onCreate(savedInstanceState);
  14. setContentView(R.layout.main);
  15. webView = (WebView) findViewById(R.id.webview);
  16. webView.getSettings().setJavaScriptEnabled(true);
  17.  //
  18. //webHtml();
  19. //
  20. //webImage();
  21. //
  22. //localHtmlZh();
  23. //
  24. //localHtmlBlankSpace();
  25. //
  26. //localHtml();
  27. //
  28. // localImage();
  29. //
  30. localHtmlImage();
  31. }
  32. /**
  33. * 直接网页显示
  34. */
  35. private void webHtml() {
  36. try {
  37. webView.loadUrl("http://www.google.com");
  38. } catch (Exception ex) {
  39. ex.printStackTrace();
  40. }
  41. }
  42. /**
  43. * 直接网络图片显示
  44. */
  45. private void webImage() {
  46. try {
  47. webView
  48. .loadUrl("http://www./codesite/ph/images/code_small.png");
  49. } catch (Exception ex) {
  50. ex.printStackTrace();
  51. }
  52. }
  53. /**
  54. * 中文显示
  55. */
  56. private void localHtmlZh() {
  57. try {
  58. String data = "测试含有 中文的Html数据";
  59. // utf-8编码处理(在SDK1.5模拟器和真实设备上都将出现乱码,SDK1.6上能正常显示)
  60. //webView.loadData(data, mimeType, encoding);
  61. // 对数据进行编码处理(SDK1.5版本)
  62. webView.loadData(URLEncoder.encode(data, encoding), mimeType,
  63. encoding);
  64. } catch (Exception ex) {
  65. ex.printStackTrace();
  66. }
  67. }
  68. /**
  69. * 中文显示(空格的处理)
  70. */
  71. private void localHtmlBlankSpace() {
  72. try {
  73. String data = " 测试含有空格的Html数据 ";
  74. // 不对空格做处理
  75. webView.loadData(URLEncoder.encode(data, encoding), mimeType,
  76. encoding);
  77. //webView.loadData(data, mimeType, encoding);
  78. // 对空格做处理(在SDK1.5版本中)
  79. webView.loadData(URLEncoder.encode(data, encoding).replaceAll(
  80. "\+", " "), mimeType, encoding);
  81. } catch (Exception ex) {
  82. ex.printStackTrace();
  83. }
  84. }
  85. /**
  86. * 显示本地图片文件
  87. */
  88. private void localImage() {
  89. try {
  90. // 本地文件处理(如果文件名中有空格需要用+来替代)
  91. webView.loadUrl("file:///android_asset/icon.png");
  92. } catch (Exception ex) {
  93. ex.printStackTrace();
  94. }
  95. }
  96. /**
  97. * 显示本地网页文件
  98. */
  99. private void localHtml() {
  100. try {
  101. // 本地文件处理(如果文件名中有空格需要用+来替代)
  102. webView.loadUrl("file:///android_asset/test.html");
  103. } catch (Exception ex) {
  104. ex.printStackTrace();
  105. }
  106. }
  107. /**
  108. * 显示本地图片和文字混合的Html内容
  109. */
  110. private void localHtmlImage() {
  111. try {
  112. String data = "测试本地图片和文字混合显示,这是APK里的图片";
  113. // SDK1.5本地文件处理(不能显示图片)
  114. // webView.loadData(URLEncoder.encode(data, encoding), mimeType,
  115. // encoding);
  116. // SDK1.6及以后版本
  117. // webView.loadData(data, mimeType, encoding);
  118. // 本地文件处理(能显示图片)
  119. webView.loadDataWithBaseURL("about:blank", data, mimeType,
  120. encoding, "");
  121. } catch (Exception ex) {
  122. ex.printStackTrace();
  123. }
  124. }
  125. }

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多