Picasso and Android-Universal-Image-Loader缓存框架
时间:2022-04-25
本文章向大家介绍Picasso and Android-Universal-Image-Loader缓存框架,主要内容包括picasso、Android-Universal-Image-Loader、使用、根据url获取已读的图片文件、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
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());
- Java并发编程的艺术(十二)——线程安全
- 用 LSTM 做时间序列预测的一个小例子
- Java并发编程的艺术(十一)——线程池(2)
- Java并发编程的艺术(十)——线程池(1)
- Tensorflow on Spark爬坑指南
- Boost asio 官方教程
- 0基础教你搭建一套可自动化构建的微服务框架(SpringBoot+Dubbo+Docker+Jenkins)
- 柴毛毛大话设计模式——开发常用的设计模式梳理
- Redis源码分析(四)——Redis数据结构-整数集合
- Redis源码分析(三)——Redis数据结构-字典
- Redis源码分析(二)——Redis数据结构-链表
- C++实现神经网络之一 | Net类的设计和神经网络的初始化
- Redis源码分析(一)——Redis数据结构-字符串SDS
- 使用RNN预测股票价格系列二
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Android 自定义相机及分析源码
- Android实现微博菜单弹出效果
- Android开发之拖动条和评分组件用法分析
- Android使用AsyncQueryHandler实现获取手机联系人功能
- Android用过TextView实现跑马灯效果的示例
- android如何设置Activity背景色为透明色
- Android 手机防止休眠的两种实现方法
- Android编程实现的首页左右滑动切换功能示例
- 零基础学小程序004----小程序post请求,提交数据到服务器,小程序下单,小程序用户注册功能
- HorizontalScrollView水平滚动控件使用方法详解
- Android Activity生命周期和堆栈管理的详解
- Android学习之SharedPerference存储详解
- Android编程实现对话框Dialog背景透明功能示例
- Android开发中DatePicker日期与时间控件实例代码
- Android Shader应用开发之霓虹闪烁文字效果