`
CshBBrain
  • 浏览: 637505 次
  • 性别: Icon_minigender_1
  • 来自: 成都
博客专栏
B7d9bf34-126e-301f-819e-81f2615b5a2a
开源WebSocket服务...
浏览量:142024
Group-logo
HTML5移动开发
浏览量:135347
社区版块
存档分类
最新评论

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

 
阅读更多
    转自:http://developer.51cto.com/art/201008/216488.htm
    本文希望通过本次对WebView组件的使用讲解,可以让各位了解到WebView组件的详细使用方法。

 

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.  
  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> 
  16.  
  17. 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.  //  
  34.  
  35. //webHtml();  
  36.  
  37. //  
  38.  
  39. //webImage();  
  40.  
  41. //  
  42.  
  43. //localHtmlZh();  
  44.  
  45. //  
  46.  
  47. //localHtmlBlankSpace();  
  48.  
  49. //  
  50.  
  51. //localHtml();  
  52.  
  53. //  
  54.  
  55. // localImage();  
  56.  
  57. //  
  58.  
  59. localHtmlImage();  
  60.  
  61. }  
  62.  
  63. /**  
  64.  
  65. * 直接网页显示  
  66.  
  67. */  
  68.  
  69. private void webHtml() {  
  70.  
  71. try {  
  72.  
  73. webView.loadUrl("http://www.google.com");  
  74.  
  75. } catch (Exception ex) {  
  76.  
  77. ex.printStackTrace();  
  78.  
  79. }  
  80.  
  81. }  
  82.  
  83. /**  
  84.  
  85. * 直接网络图片显示  
  86.  
  87. */  
  88.  
  89. private void webImage() {  
  90.  
  91. try {  
  92.  
  93. webView  
  94.  
  95. .loadUrl("http://www.gstatic.com/codesite/ph/images/code_small.png");  
  96.  
  97. } catch (Exception ex) {  
  98.  
  99. ex.printStackTrace();  
  100.  
  101. }  
  102.  
  103. }  
  104.  
  105. /**  
  106.  
  107. * 中文显示  
  108.  
  109. */  
  110.  
  111. private void localHtmlZh() {  
  112.  
  113. try {  
  114.  
  115. String data = "测试含有 中文的Html数据";  
  116.  
  117. // utf-8编码处理(在SDK1.5模拟器和真实设备上都将出现乱码,SDK1.6上能正常显示)  
  118.  
  119. //webView.loadData(data, mimeType, encoding);  
  120.  
  121. // 对数据进行编码处理(SDK1.5版本)  
  122.  
  123. webView.loadData(URLEncoder.encode(data, encoding), mimeType,  
  124.  
  125. encoding);  
  126.  
  127. } catch (Exception ex) {  
  128.  
  129. ex.printStackTrace();  
  130.  
  131. }  
  132.  
  133. }  
  134.  
  135. /**  
  136.  
  137. * 中文显示(空格的处理)  
  138.  
  139. */  
  140.  
  141. private void localHtmlBlankSpace() {  
  142.  
  143. try {  
  144.  
  145. String data = " 测试含有空格的Html数据 ";  
  146.  
  147. // 不对空格做处理  
  148.  
  149. webView.loadData(URLEncoder.encode(data, encoding), mimeType,  
  150.  
  151. encoding);  
  152.  
  153. //webView.loadData(data, mimeType, encoding);  
  154.  
  155. // 对空格做处理(在SDK1.5版本中)  
  156.  
  157. webView.loadData(URLEncoder.encode(data, encoding).replaceAll(  
  158.  
  159. "\+", " "), mimeType, encoding);  
  160.  
  161. } catch (Exception ex) {  
  162.  
  163. ex.printStackTrace();  
  164.  
  165. }  
  166.  
  167. }  
  168.  
  169. /**  
  170.  
  171. * 显示本地图片文件  
  172.  
  173. */  
  174.  
  175. private void localImage() {  
  176.  
  177. try {  
  178.  
  179. // 本地文件处理(如果文件名中有空格需要用+来替代)  
  180.  
  181. webView.loadUrl("file:///android_asset/icon.png");  
  182.  
  183. } catch (Exception ex) {  
  184.  
  185. ex.printStackTrace();  
  186.  
  187. }  
  188.  
  189. }  
  190.  
  191. /**  
  192.  
  193. * 显示本地网页文件  
  194.  
  195. */  
  196.  
  197. private void localHtml() {  
  198.  
  199. try {  
  200.  
  201. // 本地文件处理(如果文件名中有空格需要用+来替代)  
  202.  
  203. webView.loadUrl("file:///android_asset/test.html");  
  204.  
  205. } catch (Exception ex) {  
  206.  
  207. ex.printStackTrace();  
  208.  
  209. }  
  210.  
  211. }  
  212.  
  213. /**  
  214.  
  215. * 显示本地图片和文字混合的Html内容  
  216.  
  217. */  
  218.  
  219. private void localHtmlImage() {  
  220.  
  221. try {  
  222.  
  223. String data = "测试本地图片和文字混合显示,这是APK里的图片";  
  224.  
  225. // SDK1.5本地文件处理(不能显示图片)  
  226.  
  227. // webView.loadData(URLEncoder.encode(data, encoding), mimeType,  
  228.  
  229. // encoding);  
  230.  
  231. // SDK1.6及以后版本  
  232.  
  233. // webView.loadData(data, mimeType, encoding);  
  234.  
  235. // 本地文件处理(能显示图片)  
  236.  
  237. webView.loadDataWithBaseURL("about:blank", data, mimeType,  
  238.  
  239. encoding, "");  
  240.  
  241. } catch (Exception ex) {  
  242.  
  243. ex.printStackTrace();  
  244.  
  245. }  
  246.  
  247. }  
  248.  
分享到:
评论

相关推荐

    Android WebView组件用法详解

    本文实例讲述了Android WebView组件用法。分享给大家供大家参考,具体如下: 如果想WebView能够访问网络,必须在AndroidManifest.xml里面添加权限 &lt;uses android:name=android.permission.INTERNET&gt; main.xml很...

    Android应用开发详解

    《Android应用开发详解》 作者:郭宏志 编著 内容简介 本书分为三个部分,包括基础篇、技术篇和应用篇。由浅入深地讲述了Android应用开发的方方面面。 第一篇 基础篇 第1章 Android概述 Android概述,讲述了...

    WebView的全面使用及封装

    Android WebView的全面使用及其详解,并且包含相应的代码封装

    Android WebView的详解及实例

     在Android手机中内置了一款高性能webkit内核浏览器,在SDK中封装为一个叫做WebView组件。WebKit是Mac OS X v10.3及以上版本所包含的软件框 架(对v10.2.7及以上版本也可通过软件更新获取)。 同时,WebKit也是Mac ...

    android开发揭秘PDF

    第1章 Android开发简介 1.1 Android基本概念 1.1.1 Android简介 1.1.2 Android的系统构架 1.1.3 Android应用程序框架 1.2 OMS介绍 1.2.1 OPhone介绍 1.2.2 Widget介绍 1.3 小结 第2章 Android开发环境搭建 2.1 ...

    Android WebView使用方法详解 附js交互调用方法

    目前很多Android app都内置了可以显示web页面的界面,会发现这个界面一般都是由一个叫做WebView的组件渲染出来的,学习该组件可以为你的app开发提升扩展性。 先说下WebView的一些优点: –可以直接显示和渲染web页面...

    android中webview定位问题示例详解

    其实这是Android里一个叫WebView的组件实现的。 最近在做安卓的网页开发。有一个页面需要用到定位,但是一直定位获取失败。很难过。网上教程也很多,但是无一例外全部失败。最后老夫花了3天时间,呕心沥血,终于研制...

    Android中实现WebView和JavaScript的互相调用详解

    使用H5开发Android的UI界面,最重要的就是如何实现Js代码和Java代码之间的互相调用了 在讲解之前,让我们先把项目跑起来 效果图: 准备好index.html文件,将它放入Android工程下的assets文件夹中: &lt;!...

    《Android应用开发揭秘》附带光盘代码.

    《Android应用开发揭秘》全部实例源代码,配合《Android应用开发揭秘》使用 前言  第一部分 准备篇  第1章 Android开发简介  1.1 Android基本概念  1.1.1 Android简介  1.1.2 Android的系统构架  1.1.3 ...

    Android典型技术模块开发详解

    第二篇 Android开发关键组件 第3章 Activity(活动) 3.1 什么是任务 3.2 Activity的生命周期 3.3 基本用法 3.3.1 创建Activity 3.3.2 启动Activity 3.3.3 窗口Activity 3.3.4 Activity生命周期验证 3.4 Activity...

    《Android应用开发揭秘》源码

     杨丰盛,Android应用开发先驱,对Android有深入研究,实战经验极其丰富。精通Java、C、C++等语言,专注于移动通信软件开发,在机顶盒软件开发和MTK平台软件开发方面有非常深厚的积累。2007年获得中国软件行业协会...

    Android应用开发揭秘pdf高清版

    《Android应用开发揭秘》内容全面,不仅详细讲解了Android框架、Android组件、用户界面开发、游戏开发、数据存储、多媒体开发和网络开发等基础知识,而且还深入阐述了传感器、语音识别、桌面组件开发、Android游戏...

    详解android webView独立进程通讯方式

    为什么需要将webView放在独立进程 webView 加载网页的时候可能占用大量内存,导致应用程序OOM。 webView 在访问结束的时候可以直接杀死该进程,防止内存泄漏。 webView 在崩溃的时候不影响主进程。 webView独立...

    Android 4.X手机/平板电脑程序设计入门、应用到精通_源代

     24种接口组件使用详解、4种接口组件面板类型详解、5种对话框使用详解,帮助您设计出漂亮又好用的App; 11个Intent专门单元,包括建立Tab卷标页、传送和回传数据、Intent Filter…,让您完整学会Intent的用法; 4...

Global site tag (gtag.js) - Google Analytics