xUtils 中的 BitmapUtils

韩梦飞沙  韩亚飞  [email protected]  yue31313  han_meng_fei_sha

xUtils框架,包括BitmapUtils、DbUtils、ViewUtils和HttpUtils四大模块,这四大模块都是项目中比较常用的。

 BitmapUtils内存缓存的核心类LruMemoryCache,LruMemoryCache代码和v4包的LruCache一样,只是加了一个存储超期的处理,这里分析LruCache源码。LRU即Least Recently Used,近期最少使用算法。也就是当内存缓存达到设定的最大值时将内存缓存中近期最少使用的对象移除,有效的避免了OOM的出现。

讲到LruCache不得不提一下LinkedHashMap,因为LruCache中Lru算法的实现就是通过LinkedHashMap来实现的。LinkedHashMap继承于HashMap,它使用了一个双向链表来存储Map中的Entry顺序关系,这种顺序有两种,一种是LRU顺序,一种是插入顺序,这可以由其构造函数public LinkedHashMap(int initialCapacity,float loadFactor, boolean accessOrder)指定。所以,对于get、put、remove等操作,LinkedHashMap除了要做HashMap做的事情,还做些调整Entry顺序链表的工作。LruCache中将LinkedHashMap的顺序设置为LRU顺序来实现LRU缓存,每次调用get(也就是从内存缓存中取图片),则将该对象移到链表的尾端。调用put插入新的对象也是存储在链表尾端,这样当内存缓存达到设定的最大值时,将链表头部的对象(近期最少用到的)移除。

时间: 2024-09-30 10:12:00

xUtils 中的 BitmapUtils的相关文章

xUtils 中的BitmapUtils 全面注释

/** * 加载图片工具类 * @author afu * */ public class BitmapUtils implements TaskHandler { /** * 判断任务是否暂停 */ private boolean pauseTask = false; /** * 是否取消所有任务 */ private boolean cancelAllTask = false; private final Object pauseTaskLock = new Object(); /** *

xutils中dbutils的使用

近几天公司交给我一个任务,就是讲公司一个app中的某个功能模块的数据存储方式由sharePreference转为sqlite存储.我已开始就是通过最基础的方式来做的,即这样: package com.mesada.financing.dbutils; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase

关于xutils中的BitmapUtil实现简单的缓存和下载

使用bitmaputil加载图片时,会自动缓存你已经浏览过的图片.当你下次使用时默认情况下会自动使用历史中的图片.所以你可以在加载这些图片时把对应的url放在list中,下次可以根据需要在历史中获取图片.使用时可以通过判断联网状态判断是从网上获取还是从缓存中获取. 例如: final String[] urls = new String[]{"http://192.168.1.167:8080/image1.jpg", "http://192.168.1.167:8080/i

xUtils介绍 -- DbUtils、ViewUtils、HttpUtils、BitmapUtils

转载注明出处:https://github.com/wyouflf/xUtils xUtils简单介绍 xUtils 包括了非常多有用的android工具. xUtils 支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,很多其它的事件注解支持且不受混淆影响... xUitls 最低兼容android 2.2 (api level 8) 眼下xUtils主要有四大模块: DbUtils模块: android中的orm框架,一行代码就能够进行增删改查: 支持事务,默

android 项目学习随笔八(xUtils的BitmapUtils模块)

xUtils的BitmapUtils模块: 加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象: 支持加载网络图片和本地图片: 内存管理使用lru算法,更好的管理bitmap内存: 可配置线程加载线程数量,缓存大小,缓存路径,加载显示动画等... public Object instantiateItem(ViewGroup container, int position) { ImageView view = new Image

XUtils框架中HttpUtils使用Get请求时总是返回相同信息的问题解决,xutilshttputils

如需转载请标明出处:http://blog.csdn.net/itas109 版本:Xutils 2014年11月11日 下载地址:https://github.com/wyouflf/xUtils 今天做开发的时候,使用pulltorefresh下拉刷新时,每次刷新一定时间内总是返回相同内容,要过一段时间后才能刷新. 解决办法: 最后发现XUtils中的HttpUtils框架采用的时,HttpUtils对于GET请求采用了LRU缓存处理,默认60秒内提交返回上次成功的结果. HttpUtils

Android 最火开发框架 xUtils

xUtils简介 xUtils3 api变化较多, 已转至 https://github.com/wyouflf/xUtils3 xUtils 2.x对Android 6.0兼容不是很好, 请尽快升级至xUtils3. xUtils 包含了很多实用的android工具. xUtils 支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响... xUitls 最低兼容android 2.2 (api level 8) 目前xUtils主

Android Xutils 框架

Android Xutils 框架 (转) 目录(?)[-] xUtils简介 目前xUtils主要有四大模块 使用xUtils快速开发框架需要有以下权限 混淆时注意事项 DbUtils使用方法 ViewUtils使用方法 HttpUtils使用方法 普通get方法 使用HttpUtils上传文件 或者 提交数据 到服务器post方法 使用HttpUtils下载文件 BitmapUtils 使用方法 其他更多示例代码见sample文件夹中的代码 输出日志 LogUtils xUtils简介 xU

Xutils的简单总结

## xUtils简介* xUtils 包含了很多实用的android工具.* xUtils 最初源于Afinal框架,进行了大量重构,使得xUtils支持大文件上传,更全面的http请求协议支持,拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响.* xUitls最低兼容android 2.2 (api level 8) ## 目前xUtils主要有四大模块: * DbUtils模块: > * android中的orm框架,一行代码就可以进行增删改查: > * 支持事务,默认关闭: &g