SixthDay-Bitmap三级缓存+二级采样
一、Bitmap三级缓存
思路:先从缓存中获取,如果没有则去SD卡中获得,如果也没有则去网络下载下载好后写如SD卡和内存中
网络获取:Url
1、Bitmap为什莫要三级缓存
没有缓存的弊端 :费流量, 加载速度慢
加入缓存的优点: 省流量,支持离线浏览
SD卡
缓存操作
1、LruCache<String,Bitmap> cache = new LruCache<String,Bitmap>(最大缓存/8);
2、获得最大缓存:Runtime.getRuntime().macMemory()
3、存数据:cache.put(k,v);
4、取数据:cache.get(k);
5、重写sizeOf(k,v){
v.getByteCount();
}
2、代码
1、先添加读写SD卡和网络权限:
2、写一个操作内存的工具类
3、写一个操作SD卡的工具类
4、网络下载工具类
5、使用以上的工具类完成Bitmap三级缓存
二、二级采样
1、才边框并且计算缩放比例
2、采像素
步骤过程
1、BitmapFactory.Options o = new BitmapFactory.Options();
2、o.inJustDecide = false/true; //false采像素、true才边框
3、o.outWidth;//原始图片宽 o.outHeight;//原始图片高
4、o.inSampleSize = 缩放比例;//设置缩放比例
效果先看:
代码图: