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());
Android中将Bitmap以数组形式保存到SD卡
最新推荐文章于 2022-07-20 12:22:35 发布