//使用
ImageView targetImageView = (ImageView) findViewById(R.id.imageView);
String internetUrl = "http://www.jycoder.com/json/Image/1.jpg";
Picasso
.with(context)
.load(internetUrl)
.into(targetImageView);
参数设置
.noFade()//取消淡入淡出效果
.noPlaceholder()
// 有一个场景,当你从网上加载了一张图片到Imageview上,过了一段时间,想在同一个ImageView上展示另一张图片,这个时候你就会去调用Picasso,进行二次请求,这时Picasso就会把之前的图片进行清除,可能展示的是.placeholder()的图片,给用户并不是很好的体验,如果调用了noPlaceholder(),就不会出现这种情况.
.resize(x, y)//自定义图片的加载大小
.onlyScaleDown()//缩短图片的加载计算时间
.centerCrop() - 图片会被剪切,但是图片质量看着没有什么区别
.Inside()- 图片会被完整的展示,可能图片不会填充满ImageView`,也有可能会被拉伸或者挤压
.priority()//优先级,大图先展示之类
.tag()//标记提高用户体验
加载本地图片问题
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"
网友评论