`
panxq0809
  • 浏览: 296606 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Android——WebView组件的使用详解

阅读更多

通过本专题的讲解可以了解到WebView组件的详细使用:

网络内容
1、LoadUrl直接显示网页内容(单独显示网络图片)
2、LoadData显示中文网页内容(含空格的处理)
APK包内文件
1、LoadUrl显示APK中Html和图片文件
2、LoadData(loadDataWithBaseURL)显示APK中图片和文字混合的Html内容

res/layout/main.xml
<?xml version="1.0" encoding="utf-8"?>   
<LINEARLAYOUT android:layout_height="fill_parent" android:layout_width="fill_parent" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android">   
<WEBVIEW android:layout_height="fill_parent" android:layout_width="fill_parent" android:id="@+id/webview" />   
</LINEARLAYOUT>   

 

Example_webview.java

 

package cn.coolworks;

import java.net.URLEncoder;

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;

public class Example_webview extends Activity {
	WebView webView;
	final String mimeType = "text/html";
	final String encoding = "utf-8";

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		webView = (WebView) findViewById(R.id.webview);
		webView.getSettings().setJavaScriptEnabled(true);
		//
		//webHtml();
		//
		 //webImage();
		//
		//localHtmlZh();
		//
		//localHtmlBlankSpace();
		//
		//localHtml();
		//
		// localImage();
		//
		 localHtmlImage();
	}

	/**
	 * 直接网页显示
	 */
	private void webHtml() {
		try {
			webView.loadUrl("http://www.google.com");
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}

	/**
	 * 直接网络图片显示
	 */
	private void webImage() {
		try {
			webView
					.loadUrl("http://www.gstatic.com/codesite/ph/images/code_small.png");
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}

	/**
	 * 中文显示
	 */
	private void localHtmlZh() {
		try {
			String data = "<!--l encoding="utf-8" version="1.-->测试含有  中文的Html数据";
			// utf-8编码处理(在SDK1.5模拟器和真实设备上都将出现乱码,SDK1.6上能正常显示)
			//webView.loadData(data, mimeType, encoding);
			// 对数据进行编码处理(SDK1.5版本)
			 webView.loadData(URLEncoder.encode(data, encoding), mimeType,
			 encoding);
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}

	/**
	 * 中文显示(空格的处理)
	 */
	private void localHtmlBlankSpace() {
		try {
			String data = "      测试含有空格的Html数据    ";
			// 不对空格做处理
			 webView.loadData(URLEncoder.encode(data, encoding), mimeType,
			 encoding);
			//webView.loadData(data, mimeType, encoding);
			// 对空格做处理(在SDK1.5版本中)
			 webView.loadData(URLEncoder.encode(data, encoding).replaceAll(
			 "\\+", " "), mimeType, encoding);
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}

	/**
	 * 显示本地图片文件
	 */
	private void localImage() {
		try {
			// 本地文件处理(如果文件名中有空格需要用+来替代)
			webView.loadUrl("file:///android_asset/icon.png");
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}

	/**
	 * 显示本地网页文件
	 */
	private void localHtml() {
		try {
			// 本地文件处理(如果文件名中有空格需要用+来替代)
			webView.loadUrl("file:///android_asset/test.html");
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}

	/**
	 * 显示本地图片和文字混合的Html内容
	 */
	private void localHtmlImage() {
		try {
			String data = "测试本地图片和文字混合显示,这是<IMG src='\"file:///android_asset/icon.png\"/'>APK里的图片";
			// SDK1.5本地文件处理(不能显示图片)
			// webView.loadData(URLEncoder.encode(data, encoding), mimeType,
			// encoding);
			// SDK1.6及以后版本
			// webView.loadData(data, mimeType, encoding);
			// 本地文件处理(能显示图片)
			webView.loadDataWithBaseURL("about:blank", data, mimeType,
					encoding, "");
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}
}

 

分享到:
评论
2 楼 yuan1510012 2011-10-31  
超时!!!
1 楼 elena_java 2010-09-29  
如果最后一种情况,图片路径为icon.png,且存在于sdcard中或是assets中怎么办?
private void localHtmlImage() { 
        try { 
            String data = "测试本地图片和文字混合显示,这是<IMG src='\"icon.png\"/'>APK里的图片"; 
            // SDK1.5本地文件处理(不能显示图片) 
            // webView.loadData(URLEncoder.encode(data, encoding), mimeType, 
            // encoding); 
            // SDK1.6及以后版本 
            // webView.loadData(data, mimeType, encoding); 
            // 本地文件处理(能显示图片) 
            webView.loadDataWithBaseURL("about:blank", data, mimeType, 
                    encoding, ""); 
        } catch (Exception ex) { 
            ex.printStackTrace(); 
        } 

相关推荐

    安卓Android源码——BTAndroidWebViewSelection(webview选择文字).7z

    【Android WebView选择文字详解】 在Android开发中,WebView是一个非常重要的组件,它允许开发者在应用程序中内嵌网页内容。`BTAndroidWebViewSelection`是针对WebView中文字选择功能的一个实现,通常用于用户在...

    Android WebView详解和调用JS,androidrom开发书籍(csdn)————程序.pdf

    - 首先,你需要在布局XML文件中添加一个WebView组件,或者在代码中动态创建它。 - 通过`setWebViewClient`方法,你可以创建自定义的`WebViewClient`,以便控制网页的加载行为。例如,`shouldOverrideUrlLoading`...

    安卓Android源码——BTAndroidWebViewSelection(webview选择文字).zip

    【Android WebView选择文字详解】 在Android开发中,WebView是一个非常重要的组件,它允许开发者在应用程序中内嵌网页内容,提供类似浏览器的体验。本项目"BTAndroidWebViewSelection"专注于讲解如何实现WebView中...

    安卓Android源码——BTAndroidWebViewSelection(webview选择文字).rar

    【Android WebView选择文字详解】 在Android开发中,WebView是一个非常重要的组件,它允许开发者在应用程序中内嵌网页内容。这个项目“BTAndroidWebViewSelection”专注于WebView中的文本选择功能,这在许多应用...

    Android应用开发详解

    Android中的互联网应用,讲述了Android中的各种网络应用,包括Socket、URL、HTTP、Web Service和WebView组件 第14章 Android中的GPS应用 Android中的GPS应用,讲述了LocationManager、LocationProvider、跟踪、...

    安卓Android源码——MyBrowser(简单网页浏览器).zip

    2. **WebView组件**:MyBrowser的核心是Android的WebView组件,它允许在Android应用内展示网页内容。开发者通过WebView可以加载URL、执行JavaScript、处理页面交互等,实现了浏览器的基本功能。 3. **Intent**:在...

    安卓Android源码——WebViewDemo.rar

    【Android WebViewDemo详解】 在Android应用开发中,WebView是一个非常重要的组件,它允许开发者在应用程序内展示网页内容,实现与网页的交互。本教程将深入探讨Android中的WebViewDemo,通过源码分析,帮助你理解...

    Android典型技术模块开发详解

    2.2 HelloAndroid详解 2.2.1 程序结构 2.2.2 代码分析 2.3 权限permission 2.4 LogCat日志调试 2.5 示例练习 2.5.1 登录界面 2.5.2 事件处理 2.6 本章小结 第二篇 Android开发关键组件 第3章 Activity(活动) 3.1 ...

    Android做的一个网页浏览器

    2. **WebView组件**:`WebView`是Android提供的核心组件,用于在应用程序内显示网页内容。它支持HTML5、CSS3以及JavaScript,使得在Android应用中实现网页浏览成为可能。 二、WebView的使用 1. **初始化WebView**...

    android开发揭秘PDF

    2.3 创建第一个Android项目——HeUoAndroid 2.3.1 创建HelloAndroid项目 2.3.2 运行HelloAndroid及模拟器的使用 2.3.3 调试HelloAndroid 2.4 小结 第二部分 基础篇 第3章 Android程序设计基础 3.1 Android程序框架 ...

    androidsdk-platforms-android-28.rar

    15. **WebView更新**:Android 9.0 中的WebView组件得到了显著优化,提高了网页加载速度和安全性。 总结起来,Android 28 SDK 代表了 Android 9.0 Pie 版本,其核心在于提升用户体验、增强安全性与隐私保护,以及...

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

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

    Android应用开发揭秘pdf高清版

    2.3 创建第一个Android项目——HeUoAndroid 2.3.1 创建HelloAndroid项目 2.3.2 运行HelloAndroid及模拟器的使用 2.3.3 调试HelloAndroid 2.4 小结 第二部分 基础篇 第3章 Android程序设计基础 3.1 Android程序框架 ...

    Android-txt-reader.rar_android_android txt_android txt Reader

    《Android文本阅读器开发详解》 在Android平台上,开发一款文本阅读器是常见的应用场景,尤其对于喜欢阅读电子书籍或者处理文档的用户来说,一个高效、便捷的文本阅读器显得尤为重要。本文将基于“Android-txt-...

    《Android应用开发揭秘》源码

     2.3 创建第一个Android项目——HeUoAndroid  2.3.1 创建HelloAndroid项目  2.3.2 运行HelloAndroid及模拟器的使用  2.3.3 调试HelloAndroid  2.4 小结  第二部分 基础篇  第3章 Android程序设计基础  3.1 ...

    androidsdk-platforms-android-19.rar

    《Android SDK 平台详解:聚焦于Android 19》 Android SDK(Software Development Kit)是开发者构建、调试和优化Android应用的关键工具集。在本文中,我们将深入探讨Android SDK中的一个特定部分——"platforms...

    androidsdk-platforms-android-18.rar

    7. **Webview更新**:对内置浏览器的WebView组件进行了升级,增强了HTML5功能支持和性能,提升了网页应用的体验。 Android SDK中的"android-18"目录包含了构建和测试针对Android 4.3应用所需的所有资源和工具。其中...

    android-19.rar

    3. **Webview更新**:WebView组件得到显著升级,性能提升,支持更多现代Web技术,如WebGL和Web Workers,使得混合应用开发更为便捷。 4. **蓝牙LE**:增加了对低功耗蓝牙(Bluetooth Low Energy, BLE)的支持,为...

Global site tag (gtag.js) - Google Analytics