Bitmap在Android开发中经常会用到,高效加载Bitmap就显得很重要了,节省流量,加快加载速度,不出现卡顿现象这是我们想要达到的目的。
Android常用的缓存策略也是很重要的,Bitmap也需要做缓存,主要有两种,内存缓存和存储缓存,当请求加载图片时,先从内存缓存中找,找不到就到存储缓存中找,在存储缓存中也没有就从网络加载。缓存主要使用的是Lru算法,即是最近最少使用算法 ,当缓存不足的时候,会淘汰近期最少使用的缓存。常用的缓存有LruCache和DiskLruCache,LruCache用作内存缓存,DiskLruCache用作存储缓存。
一、Bitmap高效加载
加载图片,BitmapFactory有四个方法:decodeFile,decodeResource,decodeStream,decodeByteArray,分别从文件、资源、输入流、字节数组中加载Bitmap对象。
decodeFile(String PathName);//指定文件解析创建
decodeFileDescriptor(FileDescriptor fd);//从FileDescriptor解析创建Bitmap
decodeResource(Resource res,int id);//给定资源id解析创建
decodeStream(inputStream is);//从输入流中解析创建
decodeByteArray(byte[] data,int offset,int length);//从offset开始将length对象解析成Bitmap对象
想要高效加载需要采用BitmapFactory.Options,通过BitmapFactory.Options可以按一定比例来加载缩