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); 缓存什么的设置基本可以忽略了 另外的一些诸如裁剪图片: Pic

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());
目录
相关文章
|
6月前
|
Java Android开发 开发者
1024程序节|Android框架之一 BRVAH【BaseRecyclerViewAdapterHelper】使用demo
BRVAH是一个强大的RecyclerAdapter框架(什么是RecyclerView?),它能节约开发者大量的开发时间,集成了大部分列表常用需求解决方案。为什么会有它?请查看「Android开源框架BRVAH由来篇」该框架于2016年4月10号发布的第1个版本到现在已经一年多了,经历了800多次代码提交,140多次版本打包,修复了1000多个问题,获得了9000多star,非常感谢大家的使用以及反馈。
141 0
|
4月前
|
缓存 JSON Android开发
[Android]网络框架之OkHttp(详细)(kotlin)
[Android]网络框架之OkHttp(详细)(kotlin)
150 0
|
4月前
|
XML 缓存 Java
Android App开发之利用Glide实现图片的三级缓存Cache讲解及实战(附源码 超详细必看 简单易懂)
Android App开发之利用Glide实现图片的三级缓存Cache讲解及实战(附源码 超详细必看 简单易懂)
118 0
|
4月前
|
XML Java Android开发
Android Studio App开发之利用图片加载框架Glide实现刷新验证码功能(附源码 简单易懂)
Android Studio App开发之利用图片加载框架Glide实现刷新验证码功能(附源码 简单易懂)
33 0
|
5月前
|
小程序 开发工具 Android开发
Donut多端框架小程序打包适配ios和安卓app
腾讯新出了一个 Donut 多端框架,可以直接将微信小程序转成 ios 和 安卓 app,小程序开发者工具里也集成了 app 相关升级、调试和打包的功能,终于可以一套代码开发出3个客户端了!
126 0
Donut多端框架小程序打包适配ios和安卓app
|
7月前
|
Java API Android开发
面试官,Android 怎样实现 Router 框架?(二)
面试官,Android 怎样实现 Router 框架?
|
7月前
|
ARouter IDE Java
面试官,Android 怎样实现 Router 框架?(一)
面试官,Android 怎样实现 Router 框架?
|
7月前
|
API Android开发
mPaaS(移动跨平台框架)目前已经支持了Android API级别21
mPaaS(移动跨平台框架)目前已经支持了Android API级别21
107 2
|
8月前
|
Android开发
Android手写占位式插件化框架之apk解析原理系统源码分析
Android手写占位式插件化框架之apk解析原理系统源码分析
76 0