关于Picasso load本地图片显示失败的探究

今天测试找过来说图片不显示了,查了一下是Picasso加载本地图片没有显示,奇怪了,以前都是这样写为什么现在不行了,难道是Picasso有bug了,怀着激动的心情断点跟进去发现

Picasso所有load的重载都会将传入参数转化为Uri 再交给RequestCreator处理

而Picasso.load(localImagePath) 转化为Uri是没有 Scheme的 uri: "/storage/emulated/0/Android/data/xxxx/xxx.png"
这样当然无法解析图片了

解决方式:
Picasso.load(new File(localImagePath)) 就可以了,File转化为Uri 是包含Scheme的,
uri: "file:///storage/emulated/0/Android/data/xxxxx/xxx.png"

解决。

下次用一个库的时候还是先看看其实现原理吧,免得去踩一些不必要的坑

posted @ 2017-02-24 15:16  rocomp  阅读(4380)  评论(0编辑  收藏  举报