如何计算位图大小?我的理解是它应该支持 Volley 上的 Google I/O 演示文稿中的三个全屏。有谁知道我如何计算任何给定 Android 设备上三个全屏的内存大小?我认为这是指内存缓存,因此是 BitmapCache 但不确定。
现在我已经看到建议的以下计算,但不确定这是否与将三个屏幕的数据缓存在内存中一致。
final int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024);
final int cacheSize = maxMemory / 8;
更新:使用总内存的 1/8 进行缓存的逻辑是什么。这与保留三个屏幕的数据相比如何?
谢谢
import android.graphics.Bitmap;
import android.support.v4.util.LruCache;
import com.android.volley.toolbox.ImageLoader.ImageCache;
public class LruBitmapCache extends LruCache<String, Bitmap> implements ImageCache {
public LruBitmapCache(int maxSize) {
super(maxSize);
}
@Override
protected int sizeOf(String key, Bitmap value) {
return value.getRowBytes() * value.getHeight();
}
@Override
public Bitmap getBitmap(String url) {
return get(url);
}
@Override
public void putBitmap(String url, Bitmap bitmap) {
put(url, bitmap);
}
}