我最近在Android上关注了Googles Advice on Bitmap Caching,并从支持库中添加了我自己的LruCache。如果缓存已知图像的大小(以字节为单位),则LruCache的效果最佳。
问题是,位图的getByteCount仅在Android API Level 11之后可用。
您如何猜测内存中位图的大小?
答案 0 :(得分:5)
来自android.graphics.Bitmap源代码:
public final int getByteCount() {
// int result permits bitmaps up to 46,340 x 46,340
return getRowBytes() * getHeight();
}
{1}}和getRowBytes()
都是API级别1,因此您可以为所有版本的Android实施自己的getHeight()
。乍看之下,getByteCount()
似乎只是为方便起见而添加的。
答案 1 :(得分:2)
取决于您使用的Bitmap.Config,不是吗? ARGB_8888 - 应该在宽度*高度* 4字节解压缩的地方结束。