使用Picasso加载图片记录

1.网络加载异步加载
Picasso.with(this).load("http://i.imgur.com/DvpvklR.png").into(image);


2.图片存放在固定sdcard位置(下载本地并加载)


 Picasso picasso = new Picasso.Builder(this).downloader(
                new OkHttpDownloader(new File(path))).build();
        Picasso.setSingletonInstance(picasso);


3.直接加载已经下载在本地
 Picasso.with(this).load(new File(photoPath)).into(view);
//view 必须是imageview、自设置宽高


4.图片转换:转换图片以适应布局大小并减少内存占用

Picasso.with(context)
 .load(url)
.resize(50,50)
.centerCrop()//imageview的屏幕比例
.into(imageView);


5.查看大图


Picasso.with(getApplication())
.load(mURL)
.memoryPolicy(NO_CACHE, NO_STORE)//其中memoryPolicy的NO_CACHE是指图片加载时放弃在内存缓存中查找,NO_STORE是指图片加载完不缓存在内存中。
.into(imageView);


6.自定义imageview 实现内存加速优化
重写ImageView的onDetachedFromWindow方法,去掉drawable引用,能加快内存的回收。


public class RecyclerImageView extends ImageView

    ...


    @Override    
    protected void onDetachedFromWindow() {
        super.onDetachedFromWindow();
        setImageDrawable(null);   
    }
}

猜你喜欢

转载自blog.csdn.net/nvcxy_1225/article/details/54577519