android ---imageloader 加本地图片时 java.lang.UnsupportedOperationException: UIL doesn't support scheme,

来源:互联网 发布:淘宝账号在哪看到 编辑:程序博客网 时间:2024/05/22 11:47

What--问题描述:

在写demo的过程中,遇到了用imgageloader加载本地sdcard图片的时候报这个错: java.lang.UnsupportedOperationException: UIL doesn't support scheme,You should implement this support yourself (BaseImageDownloader.getStreamFromOtherSource(...))

如图:



Why--报错原因

开始的时候以为是本地图片的路径有问题,如上图,含有中文及特殊符号(?),但是最后一想我项目里怎么就没有问题呢。最后百度了一下,发现是少写了一个东西。imgageLoader在加载不同路径来源的图片时需要加上不同的限制,如加载sdcard图片时路径需要加上file://


How--解决方法

加载sdcard图片时路径需要加上file://。如 上图String url="/storage/emulated/0/新建文件夹/magazine.jpg"为图片在sdcard上的绝对路径,那么用imageloader加载时路径应该为 String downloadUrl="file:///storage/emulated/0/新建文件夹/magazine.jpg",  即downloadUrl=“file://”+url;


Extend--扩展

ImageLoader 不同路径加载图片的方式举例


1.加载网络图片

 String downloadUrl= "http://img1.3lian.com/img013/v4/96/d/45.jpg";

即直接加载网络地址


2.加载本地SdCard图片

 String downloadUrl= "file:///storage/emulated/0/新建文件夹/magazine.jpg";

即在图片绝对路径前加“file://”;


3.加载content provider路径下图片

 String downloadUrl= "content://media/external/audio/albumart/13";

即在图片路径前加“content://”;


4.加载项目内assets路径下图片

 String downloadUrl= "assets://image.png";

即在图片路径前加“assets://”;


5.项目内drawables id (only images, non-9patch)图片

 String downloadUrl= "drawable://" + R.drawable.image;

即在图片路径前加“drawable://”;


PS


ImageLoader 不同路径加载图片的方式举例中亲自用到的只有前两种,网络和本地sdcard,其余的没有用过。


参考文章


1.Android-Universal-Image-Loader不同路径加载图片方式

2.http://troublevn.com/45378/imageloader-uil-doesnt-support-scheme-protocol-by-default?show=45379



0 0
原创粉丝点击