在网上看了许多关于WebView 的例子。但当自己做起来时,总是有些差别,是另一种体会。这节我就以 模拟器为2.1 为例来讲。
WebView 主要调用三个方法:LoadUrl、LoadData、LoadDataWithBaseURL。
1、LoadUrl 直接加载网页、图片并显示。(本地或是网络上的网页、图片、gif)
2、LoadData 显示文字与图片内容 (模拟器1.5、1.6)
3、LoadDataWithBase 显示文字与图片内容(支持多个模拟器版本)
下面来看看代码片段:
package com.webviewdemo;
import java.net.URLEncoder;
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
public class WebViewDemo extends Activity {
private WebView MyWebView;
static final String mimeType = "text/html";
static 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);
//
MyWebView = (WebView) findViewById(R.id.MyWebview);
// this.webHtml();
// this.webImage();
// this.localHtmlZh();
// this.localImage();
// this.localHtml();
this.localHtmlImage();
}
/**
* 直接网页显示
*/
private void webHtml() {
try {
MyWebView.loadUrl("http://www.google.com");
} catch (Exception ex) {
ex.printStackTrace();
}
}
/**
* 直接网络图片显示
*/
private void webImage() {
try {
MyWebView .loadUrl("http://www.google.com.hk/intl/zh-CN/images/logo_cn.gif");
} catch (Exception ex) {
ex.printStackTrace();
}
}
/**
* 中文显示
*/
private void localHtmlZh() {
try {
String data = "<html>在模拟器 2.1 上测试</html>";
// utf-8编码处理(在SDK1.5模拟器和真实设备上都将出现乱码,SDK1.6上能正常显示)
// MyWebView.loadData(data, mimeType, encoding);
// 对数据进行编码处理(SDK1.5版本)
MyWebView.loadData(URLEncoder.encode(data, encoding), mimeType, encoding);
// MyWebView.loadDataWithBaseURL(null, data, mimeType, encoding, null);
} catch (Exception ex) {
ex.printStackTrace();
}
}
/**
* 显示本地图片文件
*/
private void localImage() {
try {
// 本地文件处理
String str = "file:///android_asset/icon.png";
MyWebView.loadUrl(str);
} catch (Exception ex) {
ex.printStackTrace();
}
}
/**
* 显示本地网页文件
*/
private void localHtml() {
try {
// 本地文件处理(如果文件名中有空格需要用+来替代)
MyWebView.loadUrl("file:///android_asset/test.html");
} catch (Exception ex) {
ex.printStackTrace();
}
}
/**
* 显示本地图片和文字混合的Html内容
*/
private void localHtmlImage() {
try {
String data = "<HTML>在模拟器 2.1 上测试,这是<IMG src=\"APK'>file:///android_asset/igg.jpg\"/>APK里的图片";
// SDK1.5本地文件处理(不能显示图片)
//MyWebView.loadData(URLEncoder.encode(data, encoding), mimeType, encoding);
// SDK1.6及以后版本
//MyWebView.loadData(data, mimeType, encoding);
// 本地文件处理(能显示图片)
MyWebView.loadDataWithBaseURL(null, data, mimeType, encoding, null);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
运行 localHtmlImage(...) 这个方法的结果:
在上面的所有方法中,模拟器2.1下 调用 LoadData 方法总是出现乱码。我想应该是2.1已经不在用它了吧。直接用LoadDataWithBaseURL 方法最简单,不再牵涉编码的转换。
记住:显示本地文件时 必须使用APK'>file:/// 作为前缀。
转自:http://hi.baidu.com/455611934/blog/item/027ffe5d17d8a652faf2c02c.html
- 大小: 28 KB
分享到:
相关推荐
Android webview 加载网页以及本地资源以及SD资源demo,以及加载缓存资源
android webView加载html 并引用本地资源(图片、字体库)
Android使用WebView的代码例子。用于演示WebView加载本地或者远程的网页,以及app与js互相调用方法的功能。
本文实例讲述了Android编程实现使用webView打开本地html文件的方法。分享给大家供大家参考,具体如下: 在布局的配置文件里: <WebView android:layout_width=wrap_content android:layout_height=wrap_content ...
QT通过URL(网址)使用WebView访问指定网页,完整代码,可直接运行。也可修改main.cpp中注释掉的代码,通过接收参数来访问指定网页
CandyWebCache是移动端web资源的本地缓存解决方案,能够拦截webview的请求,并优先使用本地缓存静态资源进行响应,以此来对webview加载页面性能进行优化。 特点: 协议层拦截请求,透明替换响应 静态资源版本控制及...
需求:Android调用webView加载网页的时候,拦截某一个链接不执行此链接,执行指定跳转到其他activity页面。 webview的setWebViewClient方法中提供了几个api: // 此回调是拦截点击要跳转的url链接,并对请求的url...
主要介绍了解决WebView通过URL加载H5界面出现空白的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
Android中WebView的详细解释: 1. 概念: WebView(网络视图)能加载显示网页,可以将其视为一个浏览器。它使用了WebKit渲染引擎加载显示网页。 2. 使用方法: (1).实例化WebView组件: A.在Activity中实例化...
本资源可以实现在线阅读pdf文档,无需下载到本地再查看,而且本资源支持页面二次开发,嵌入性强,占用存储空间小,加载时间短。
前端H5获取Android原生相册文件和拍照功能,比如H5的<input type>类型,ios不用做任何处理,而Android需要对webview重新
//加载本地资源 loadUrl(file:///android_asset/example.html); //加载网络资源 loadUrl(http://baidu.com); 2. 带进度的Drawable文件view_progress_webview <?xml version=1.0 encoding=utf-8?> <layer-...
FastWebView通过自定义本地缓存的方式,突破原生WebView缓存限制,提供多种缓存模式,支持预加载和离线加载,并友好的支持离线预推,可以大幅提升H5加载速度。经过千万级用户的项目实践数据证明,二次加载
13.4.2 使用WebView加载HTML 代码 507 13.5 使用Web Service进行 网络编程 508 13.5.1 Web Service简介 509 13.5.2 Web Service平台概述 510 13.5.3 使用Android应用调用 Web Service 512 13.6 本...
Webview window in android used to load pages just works like browser, as well as there is only one webview running at the same time. (2)Cross-domain data interaction. Different webviews can not share...
13.4.2 使用WebView加载HTML 代码 507 13.5 使用Web Service进行网络 编程 508 13.5.1 Web Service简介 509 13.5.2 Web Service平台概述 510 13.5.3 使用Android应用调用 Web Service 512 13.6 本章小结 524 第14章 ...
13.4.2 使用WebView加载HTML 代码 507 13.5 使用Web Service进行网络 编程 508 13.5.1 Web Service简介 509 13.5.2 Web Service平台概述 510 13.5.3 使用Android应用调用 Web Service 512 13.6 本章小结 524 第14章 ...
因为之前写webview加载assets文件夹时,是这样写的: webView = new WebView(this); webView.loadUrl(file:///android_asset/sample3_8.html); 依次类推,我尝试将视频video.3gp 放到assets目录下,然后写了下面的...
读取本地资源工具类(ToolResource.java),反射本地资源文件API,避免依赖R文件,方便jar形式发布 Android单位转换工具类(ToolUnit.java),sp/dp/px互转 自定义Toast工具类(ToolToast.java),自定义背景色、字体...