Picasso简介
Picasso是Square公司开源的一个Android图形缓存库,有强大图片下载缓存功能的库。
1、picasso特点
1)实现的图片的异步加载;
2)修复了图片错位,使ListView、GridView等的Adapter加载时不会加载看不到的ImageView的资源;
3)使用图片转换技术减少内存的消耗;
4)自带内存和硬盘的二级缓存机制。
2、基本作用示例
1)加载网络资源
ImageView loadingIV = (ImageView) findViewById(R.id.loading_image_view);
String url = "https://www.baidu.com/Image/test_image_1.jpg";
Picasso
.with(context)
.load(url)
.into(loadingIV );
注:URL地址正确并且图片存在,很快就会加载出这张图片,一般几秒就可以了;
如果图片资源不存在,Picasso也会有错误的回调,
2)加载项目中的资源
ImageView localIV = (ImageView) findViewById(R.id.local_image_view);
int resourceId = R.drawable.ic_launcher;
Picasso
.with(context)
.load(resourceId)
.into(localIV);
3)加载本地File文件(file并不一定在你的设备中,可以是任意的路径,只要是File路径即可)
ImageView localImageView = (ImageView) findViewById(R.id.local_image_view);
File file = new File(Environment.getExternalStorageDirectory(), "/text_image_view.png");
Picasso
.with(context)
.load(file)
.into(localImageView );
4)从URI地址中加载(支持任意的URI地址)
private static Uri resourceIdToUri(Context context, int resourceId) {
return Uri.parse("android.resource://" + context.getPackageName() + "/"+ resourceId);
}
Uri uri = resourceIdToUri(context, R.drawable.test_image_view);
ImageView testImageView = (ImageView) findViewById(R.id.test_image_view);
Picasso
.with(context)
.load(uri)
.into(testImageView );
Picasso使用时比较简单,有兴趣的可以去研究下原理。