仅提供引用android工程中assets目录下资源的方法。
如果要引用sdcard上的资源,代码中也给出了参考。自己改
主要就是提供一个ContentProvider,并修改在页面中的引用为content://你的URI前缀/实际的地址
如:
<img src="content://com.xxxxx.localfile/icon.png"/>
贴代码吧
package com.xxxxxxx;
import java.io.FileNotFoundException;
import java.io.IOException;
import android.content.ContentProvider;
import android.content.ContentValues;
import android.content.res.AssetFileDescriptor;
import android.content.res.AssetManager;
import android.database.Cursor;
import android.net.Uri;
/**
* 加载本地文件的内容提供者
*
* @author a7
*
*/
public class LocalFileContentProvider extends ContentProvider {
private static final String URI_PREFIX = "content://com.xxxxxx.localfile";
public static String constructUri(String url) {
Uri uri = Uri.parse(url);
return uri.isAbsolute() ? url : URI_PREFIX + url;
}
@Override
/**
* 直接读取程序中的资源文件<br>
* 取sd卡文件实现openfile方法即可,需要用到ParcelFileDescriptor
*
*/
public AssetFileDescriptor openAssetFile(Uri uri, String mode)
throws FileNotFoundException {
// TODO Auto-generated method stub
AssetManager am = getContext().getAssets();
String path = uri.getPath().substring(1);
try {
AssetFileDescriptor afd = am.openFd(path);
return afd;
} catch (IOException e) {
}
return super.openAssetFile(uri, mode);
}
@Override
public boolean onCreate() {
return true;
}
@Override
public int delete(Uri uri, String s, String[] as) {
throw new UnsupportedOperationException(
"Not supported by this provider");
}
@Override
public String getType(Uri uri) {
throw new UnsupportedOperationException(
"Not supported by this provider");
}
@Override
public Uri insert(Uri uri, ContentValues contentvalues) {
throw new UnsupportedOperationException(
"Not supported by this provider");
}
@Override
public Cursor query(Uri uri, String[] as, String s, String[] as1, String s1) {
throw new UnsupportedOperationException(
"Not supported by this provider");
}
@Override
public int update(Uri uri, ContentValues contentvalues, String s,
String[] as) {
throw new UnsupportedOperationException(
"Not supported by this provider");
}
}
分享到:
相关推荐
`clearHelpers()` 方法的作用是清理当前页面的对话框(dialog)、输入法等组件,以确保加载新页面时不会受到旧页面元素的影响。 ```java // BrowserFrame.java public void loadUrl(String url, Map, String> ...
综上所述,基于安卓Webkit的简易Web浏览器开发涉及了Android编程、WebView组件的使用、用户界面设计以及安全性和性能优化等多个方面。通过不断学习和实践,开发者可以创建出功能完善、用户体验优秀的Web浏览器应用。...
这个"Webkit_webkit浏览器_webkit_android_"的项目是针对初学者设计的,旨在帮助他们理解如何在Android平台上利用Webkit技术构建一个简单的web浏览器应用。 首先,我们要了解Webkit的核心功能。Webkit负责解析HTML...
在Android系统中,内置的浏览器是基于开源的WebKit渲染引擎构建的。...通过深入学习和理解这部分源代码,开发者不仅可以提升对Android平台和WebKit的理解,还能为开发更高效、安全的Web应用打下坚实基础。
2. **加载网页**: 使用 `loadUrl()` 方法加载本地或远程的网页。 3. **设置 JavaScript 支持**: 通过 `getSettings().setJavaScriptEnabled(true)` 开启 JavaScript 支持。 4. **JavaScript 交互**: 使用 `...
在Android 4.0.1版本中,WebKit是系统内核的重要组成部分,它是一个开源的网页渲染引擎,负责...对于开发Android应用,特别是涉及到WebView的项目,理解并掌握这些知识点至关重要,能有效提升应用的性能和用户体验。
例如,当用户点击一个链接时,Android Browser会通过WebKitBridge向Webkit发送消息,Webkit解析请求,加载页面,并将渲染结果回传给Android Browser显示。 Android Browser基于Webkit构建,它提供了一个原生的框架...
Android WebView 与 WebKit 内核深入讲解 Android WebView 是 Android 平台上的一种...了解了 Android WebView 和 WebKit 内核的工作机理,我们可以更好地使用它们来开发移动应用程序,提高应用程序的性能和安全性。
移动通信技术在Android手机开发中扮演着至关重要的角色,因为Android是目前全球最广泛使用的智能手机操作系统之一。Android手机开发涉及的领域广泛,包括系统层、应用程序层以及与硬件的交互等。以下是对Android开发...
11.1 手机游戏开发简介 11.2 游戏框架设计 11.3 地图设计 11.4 主角设计 11.5 图层管理器 11.6 游戏音效 11.7 游戏存档 11.8 小结 第四部分 高级篇 第12章 AndroidOpenGL开发 基础 12.1 OpenGL简介 12.2 多边形 ...
WebView是Android提供的一种用于展示网页内容的控件,它可以加载远程或本地的HTML资源,使得开发者可以在Android应用中展示丰富的网页交互内容。 **1. WebView的基本使用** WebView的使用首先需要在AndroidManifest...
Android 2.3 WebKit流程分析图
苹果的Safari、谷歌的Chrome、诺基亚S60平台的默认浏览器、苹果手机的默认浏览器以及Android手机的默认浏览器均采用了Webkit作为其浏览器内核。Webkit因其高效、开放和兼容性而受到广泛认可,与Gecko(火狐浏览器...
**Android WebKit 内核详解** 在Android操作系统中,WebKit是一种关键的组件,它负责处理网页内容并提供渲染引擎,使应用程序能够展示和交互与基于Web的界面。Android的WebKit内核是开源项目WebKit的分支,它为...
- 设置缓存策略:可以使用`setCacheMode()`来控制如何处理网络请求,比如离线时使用本地缓存。 3. **WebChromeClient与WebViewClient的区别** - `WebChromeClient`主要用于处理JavaScript的对话框(如alert()、...
由于移动设备资源有限,WebKit for Android 针对性能进行了优化。例如,使用硬件加速来提升渲染速度,支持离线存储(Web Storage 和 App Cache),以及通过 WKWebView(WebKit 的更新版本)引入的更高效的 ...
Android4.1 WebKit流程分析图包括 详细的网络请求流程,下载流程,代理流程