Picasso and Android-Universal-Image-Loader缓存框架详解手机开发

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()); 

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/5655.html

(0)
上一篇 2021年7月17日
下一篇 2021年7月17日

相关推荐

发表回复

登录后才能评论