仅提供引用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");
}
}
分享到:
相关推荐
android_webkit android_webkit android_webkit android_webkit android_webkit android_webkit android_webkit android_webkit android_webkit
Android WebKit HTML主资源加载过程
Android 浏览器(基于WebKit)的源代码
android4.0.1 webkit 系列文章所有图。
11.1 手机游戏开发简介 11.2 游戏框架设计 11.3 地图设计 11.4 主角设计 11.5 图层管理器 11.6 游戏音效 11.7 游戏存档 11.8 小结 第四部分 高级篇 第12章 AndroidOpenGL开发 基础 12.1 OpenGL简介 12.2 多边形 ...
简易web浏览器,基于安卓Webkit开发的。有主页设定、前往、上一页、下一页、刷新、停止载入等基本功能。
基于Webkit的新手级浏览器源码是一个简易web浏览器,基于安卓Webkit开发的。
Android 2.3 WebKit流程分析图
关于android的webkit的介绍,包括各个类之间的关系,写的非常不错,希望大家参考
关于 Android Webkit的一些原理性应用
WebKit是一个开源的浏览器网页排版引擎,...引擎框架采用了WebKit项目中的WebCore和JSCore部分,上层由Java语言封装,并且作为API提供给Android应用开发者,而底层使用WebKit核心库(WebCore和JSCore)进行网页排版。
Android4.1 WebKit流程分析图包括 详细的网络请求流程,下载流程,代理流程
Webkit,Android Brower的主要类图和时序图
Android ICS webkit移植分析
《Android应用开发揭秘》全部实例源代码,配合《Android应用开发揭秘》使用 前言 第一部分 准备篇 第1章 Android开发简介 1.1 Android基本概念 1.1.1 Android简介 1.1.2 Android的系统构架 1.1.3 ...
《Android网络开发技术实战详解》以Android网络应用程序的开发为主题,从底层原理开始讲起,结合真实的案例向读者详细介绍了Android的基本组件的使用及应用程序开发的整个流程。《Android网络开发技术实战详解》的...
苹果iPhone APP iOS开发之webkit教程.zip click事件 CSS3的transition闪屏问题 iOS 浏览器横屏时会重置字体大小的问题 webkit内核中一些私有的meta标签 关闭iOS中键盘自动大写、自动更正、自动完成 其他CSS的杂项 ...
16.3.2 使用C\C++实现本地方法 16.3 编译C\C++代码 16.4 AndroidNDK中使用0penGL 16.5小结 第17章 Android脚本环境 17.1 Android脚本环境简介 17.2 Android脚本环境安装 17.3如何编写Android脚本...
《Android应用开发揭秘》内容全面,不仅详细讲解了Android框架、Android组件、用户界面开发、游戏开发、数据存储、多媒体开发和网络开发等基础知识,而且还深入阐述了传感器、语音识别、桌面组件开发、Android游戏...
当你觉得对webview结构不熟悉的话,可以看看这个