閱讀720 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Picasso and Android-Universal-Image-Loader緩存框架

picasso

Picasso https://square.github.io/picasso/Square的開源項目之一

最大特點就是你隻需要一句代碼:

Picasso.with(context).load("https://i.imgur.com/DvpvklR.png").into(imageView);

緩存什麼的設置基本可以忽略了

另外的一些諸如裁剪圖片:

Picasso.with(context)  .load(url)  .resize(50, 50)  .centerCrop()  .into(imageView)

同樣Picasso也支持Resources, assets, files, content providers的加載

Picasso.with(context).load(R.drawable.landing_screen).into(imageView1);

Picasso.with(context).load(new File(...)).into(imageView2);

Android-Universal-Image-Loader

Android-Universal-Image-Loader https://github.com/nostra13/Android-Universal-Image-Loader

特點

多線程加載圖片

盡可能多的配置選項(線程池,加載器,解析器,內存/磁盤緩存,顯示參數等等)

圖片可以緩存在內存中,或者設備文件目錄下,或者SD卡中

可以添加圖片加載監聽器

可以自定義顯示每一張圖片時都帶不同參數

支持Widget

Android 2.0以上支持

使用

1、初始化imageloader,這個方法需要在application的create調用

public static void init(Context context) {
    ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)
    .threadPriority(Thread.NORM_PRIORITY - 2)
    .denyCacheImageMultipleSizesInMemory()
    .discCacheFileNameGenerator(new Md5FileNameGenerator())
    .tasksProcessingOrder(QueueProcessingType.LIFO)
    .writeDebugLogs() // Remove for release app
    .build();
    ImageLoader.getInstance().init(config);
}

2.配置顯示的options

DisplayImageOptions displayOption = new DisplayImageOptions.Builder()
.bitmapConfig(Bitmap.Config.RGB_565)
.showImageOnLoading(R.drawable.avatar_placeholder)
.showImageForEmptyUri(R.drawable.avatar_placeholder)
.showImageOnFail(R.drawable.avatar_placeholder)
.cacheInMemory(true)
.cacheOnDisc(true)
.imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2) 
.displayer(new BitmapDisplayer() {
    @Override
    public void display(Bitmap bitmap, ImageAware imageAware,
        LoadedFrom loadedFrom) {
        imageAware.setImageBitmap(bitmap);
    }
})
.build();

3.加載到view

ImageLoader.getInstance().displayImage(model.avatar, cell.avatarImageView, displayOption);

根據url獲取已讀的圖片文件

File file1 = DiscCacheUtil.findInCache(card.avatar, imageLoader.getDiscCache());

最後更新:2017-04-03 07:57:00

  上一篇:go Picasso and Android-Universal-Image-Loader緩存框架
  下一篇:go 解決ListView嵌套ListView遇到的問題