【转】【第三方包】【Android Universal Imageloader】关于displayImage方法中URI参数的问题

最近做项目用到了一个第三方包Android Universal Imageloader,这个包用来做图片异步加载相当方便缓存也做得挺不错的,但是实际用起来却会出现不少小问题。其实也不是小问题,只是这个组件的某些方法在设计上跟我们传统的思维有那么点小区别。

今天我在用displayImage方法加载图片的时候发现log报错:

11:09:56.861: E/ImageLoader(32085): UIL doesn't support scheme(protocol) by default [****/d***s/ba*****k/p****w.png]. You should implement this support yourself (BaseImageDownloader.getStreamFromOtherSource(...))

但是应用没死,只是图片无法显示了,细看错误提示发现我传入的URI地址不支持,需要用BaseImageDownloader提供的一个静态方法去从流获取……我表示很不解因为前些天传入http地址的时候都没问题今天从assets获取文件就出错了……想到这里断定是URI地址的问题,于是打开displayImage方法的源代码查看URL参数的说明:

@param uri       Image URI (i.e. "http://site.com/image.png", "file:///mnt/sdcard/image.png")

源码给出了两个示例地址一个是http的一个是sd的,但两个地址都有一个共同的特点就是它们都是绝对路径,于是我也尝试在我的原路径前加上"assets//"表示从assets文件夹下获取:

"assets//d***s/ba*****k/p****w.png"

尝试了运行了一下果然没问题图片能正常显示说明确实是路径的问题,后来google了一下关于这个问题的一些东西在一老外的网站发现了同样的问题而且还给出了其他一些与此类似常用的URI:

String imageUri = "http://site.com/image.png"; // from Web
String imageUri = "file:///mnt/sdcard/image.png"; // from SD card
String imageUri = "content://media/external/audio/albumart/13"; // from content provider
String imageUri = "assets://image.png"; // from assets
String imageUri = "drawable://" + R.drawable.image; // from drawables (only images, non-9patch)



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值