【发布时间】:2014-09-01 23:20:59
【问题描述】:
我阅读了一些示例,使用 LruCache 来实现用于存储位图图像的缓存机制。但是即使我已经阅读了文档http://developer.android.com/reference/android/util/LruCache.html,我仍然不知道如何使用它。
例如,在文档中,它提到“以用户定义的单位返回键和值条目的大小”。在 sizeof() 中。输入的大小是什么意思?这是否意味着它允许的条目数,例如 return 10 将允许我拥有 10 个缓存对象引用。
public class LruBitmapCache extends LruCache<String, Bitmap> implements
ImageCache {
public static int getDefaultLruCacheSize() {
final int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024);
final int cacheSize = maxMemory / 8;
return cacheSize;
}
public LruBitmapCache() {
this(getDefaultLruCacheSize());
}
public LruBitmapCache(int sizeInKiloBytes) {
super(sizeInKiloBytes);
}
@Override
protected int sizeOf(String key, Bitmap value) {
return getByteCount / 1024;
...
在上面的代码中,为什么要除1024,有什么建议呢?
另外,构造函数 LruBitmapCache(int sizeInKiloBytes),为什么参数声称它的大小以千字节为单位?根据上面的文档,它不应该是字节大小吗?
任何帮助将不胜感激,谢谢!我很困惑...
【问题讨论】: