Picasso使用笔记

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);//设置到显示的图片控件中

你可能感兴趣的:(Picasso使用笔记)