Picasso不仅可以加载网络图片,还可以加载本地资产目录文件,资源目录文件
导包
compile 'com.squareup.picasso:picasso:2.5.2'//版本是目前最新版
全局初始化Picasso的配置
在MyApplicaton中进行配置
private void initPicasso() {
Picasso picasso = new Picasso.Builder(this)
.memoryCache(new LruCache(10 << 20)) //缓存的大小:10M
.indicatorsEnabled(true)
//设置图片左上角的标记
//红色:代表从网络下载的图片
//蓝色:代表从磁盘缓存加载的图片
//绿色:代表从内存中加载的图片
.downloader(new UrlConnectionDownloader(this)) //默认的下载器,可以更改为自己想要的下载器,如Volley OkHttpClient
//配置下载器,这里用的是OkHttp,必需单独加OkHttp,同时设置了磁盘缓存的位置和大小
//.downloader(new UrlConnectionDownloader(this))
//.downloader(new OkHttpDownloader(getCacheDir(), 10 << 20))//用okhttp下载器去下载,现在兼容到okhttp2.x版本,如果导入okhttp3.x版本 不好使。。。
.defaultBitmapConfig(Bitmap.Config.RGB_565)
//下载图片的格式,这样可以节省一半的内存,Picasso默认得设置是Bitmap.Config.RGB_8888
//.defaultBitmapConfig(Bitmap.Config.ARGB_8888)
.build();
Picasso.setSingletonInstance(picasso); //设置全局的单例,而且配置就是上面的配置信息
}
加载图片时的配置
Picasso.with(context)//上下文对象
.load(url) //加载网络图片
//.load(R.drawable.steven)//加载res目录下文件
//.load("file:///android_asset/salary.jpg")//加载assets目录下文件
//.load(new File(filePath))//加载SD卡中文件
//load()方法返回的是RequestCreator类,有许多设置参数,如下设置:
.placeholder(R.mipmap.ic_launcher) //占位图片,图片未加载完成时的默认显示图片
.error(R.mipmap.ic_launcher)
//加载错误时的显示的图片
//下载失败时候的图片:会尝试三次请求,如果都失败,就显示失败的图片
.noFade()//无淡入淡出
//.resize(200, 100)//重新设置图片的尺寸
//.centerInside()//设置图片的显示方式
//.fit()
.transform(new Transformation() {
@Override
public Bitmap transform(Bitmap source) { //重新剪裁图片,可以剪裁任意类型,比如圆形,正方形,等等。。
int size = Math.min(source.getWidth(), source.getHeight());
Bitmap result = Bitmap.createBitmap(source, 0, 0, size, size);
if (result != source) {
source.recycle(); //回收原始的图片。。。
}
return result;
}
@Override
public String key() { //随意起个名字
return "square";
}
})
.rotate(90) //旋转角度
.config(Bitmap.Config.RGB_565) //默认是 ARGB_8888,全局配置过之后这里可以不再配置
.memoryPolicy(MemoryPolicy.NO_CACHE,MemoryPolicy.NO_STORE)
//NO_CACHE:跳过内存的读取
//NO_STORE:不往内存里边存取
.into(imageview);//设置到显示的图片控件中