Android中将Bitmap以数组形式保存到SD卡

Android中将Bitmap以数组形式保存到SD卡

我们在做一些涉及到从网上下载图片的app时,总是少不了跟缓存打交道。

将常用的图片缓存在SD卡上,可以减少用户等待时间,提高app的流畅性。或许你已经知道如何将图片写入SD卡,我之前也是这么干的,这么干有什么错误吗?当然没有。

但是,你打开你的相册应用,你会看到,满满的全是使用的app缓存下来的各种图片。如果每个图片都高清无码也就罢了,还都是一些巨小的图片,都失真了有木有!

所以,为了用户相册的宁静(我真高尚),也避免用户看到不应该从相册中看到的东西,将图片以另一种格式缓存下来还是很有必要的。

我采用的是将bitmap以byte数组的形式保存。真的很简单。直接贴代码吧。

ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] byteArray = stream.toByteArray();

File imageFile = new File(fileName);

FileOutputStream fstream = new FileOutputStream(imageFile);
BufferedOutputStream bStream = new BufferedOutputStream(fstream);
bStream.write(byteArray);
if (bStream != null) {
	bStream.close();
} 

bitmap通过ByteArrayOutputStream的形式输出到一个byte数组,再将数组写入文件。fileName是我通过图片的url得到的一个MD5值。使用缓存的时候,通过图片url的MD5值查找一下文件是否存在就可以了。

读取文件并重新转换成bitmap也是非常简单的,直接通过BitmapFactory从file里面decode就OK了。


bitmap = BitmapFactory.decodeFile(imageFile.getPath());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值