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