picasso
Picasso http://square.github.io/picasso/Square的开源项目之一
最大特点就是你只需要一句代码:
Picasso.with(context).load("http://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());