我想在我的应用中集成此缓存机制:Using DiskLruCache in android 4.0 does not provide for openCache method
现在,当我有位图时,我应该使用哪个键?或者更好:我如何生成密钥?
如果我可以从位图本身生成密钥,那么我以后可以调用contains(String key)
来检查位图是否已经在缓存中。
那我该怎么办?
答案 0 :(得分:0)
您希望通过散列位图字节来生成密钥,确保很可能没有两个位图会产生相同的密钥,除非它们是相同的。
您需要将Bitmap转换为字节数组才能使用内置的MessageDigest库。
Bitmap bmp = new Bitmap(); // load your bitmap...
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
MessageDigest digest = MessageDigest.getInstance("SHA-256");
digest.update(byteArray);
byte[] keyBytes = digest.digest(byteArray);
然后,将关键字节转换为带有a Bytes to Hex function like this one的字符串。