Android webview加载本地图片

原创 2013年11月25日 17:42:30

出于安全的考虑,一般情况下webview并不允许网页读取和操作网页文件所在文件夹外的文件。

在网上搜索后,发现有3种可行的方法:

1、使用WebView自身的资源拦截与回调来实现该功能;
WebView的shouldInterceptRequest回调从API 11才开始引入,所以使用该方法不能兼容2.2与2.3的系统;

2、img的src使用base64的编码格式,这种方法会造成html文件较大,轻量的网页可以考虑使用;

3、img的src使用content协议,通过ContentProvider来进行提供相应资源; 

方法2和方法3都可以兼容2.x的系统


方法3的例子:

com.packagename.provider;
public class MyProvider extends ContentProvider { 
     @Override
     public ParcelFileDescriptor openFile(Uri uri, String mode){
        URI fileURI = URI.create( "file://" + uri.getPath() );
        File file = new File( fileURI );

        ParcelFileDescriptor parcel = null;
        try {
            parcel = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY);
        } catch (FileNotFoundException e) {
            Log.e( TAG, "Error finding: " + fileURI + "\n" + e.toString() );
        }

        return parcel;

AndroidManifest.xml

 <provider
        android:name=".provider.MyProvider"
        android:authorities="com.packagename" />

You can then access your files which would normally be

 file://sdcard/Android/data/com.packagename/image.jpg

by using

 content://com.packagename/sdcard/Android/data/com.packagename/image.jpg

So essentially replace file:// with content://com.packagename


http://stackoverflow.com/questions/11303118/android-set-a-local-image-to-an-img-element-in-webview



相关文章推荐

Android中WebView加载Html中的图片添加点击事件

基本的思路: (1)WebView来加载HTML。 (2)向HTML中注入JavaScript,利用JavaScript来调用Android中的方法(执行一些跳转的操作等等)。  首先你必须有一...

android webview加载gif图片

  • 2016年06月22日 16:06
  • 21.05MB
  • 下载

Android webview加载本地图片

出于安全的考虑,一般情况下webview并不允许网页读取和操作网页文件所在文件夹外的文件。 在网上搜索后,发现有3种可行的方法: 1、使用WebView自身的资源拦截与回调来实现该功能; ...

android webview加载html图片自适应手机屏幕大小&点击查看大图

版权声明:本文为博主原创文章,未经博主允许不得转载。 目录(?)[-] 方法一直接替换html文本中img标签下图片大小方法二使用Jsoup查找img标签替换图片的宽度和高度 导...

Android使用WebView加载本地图片终极大杀招

WebView 主要调用三个方法:loadUrl、loadData、loadDataWithBaseURL。1、loadUrl 直接加载网页、图片并显示。(本地或是网络上的网页、图片、g...

Android WebView加载html文本时,图片太大不能适配屏幕

Android WebView 加载html文本时调整图片大小至适应屏幕

Android下WebView的图片适配加载与文字自动换行处理

相信各位在Android开发中使用WebView加载页面的时候,或多或少会遇到一些网页适配的问题,例如图片过大或者是单行文字过长, 导致网页可以左右拖动,使自己加载出来的网页显得非常的low,下面介绍...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android webview加载本地图片
举报原因:
原因补充:

(最多只允许输入30个字)