如何計算位圖大小?我的理解是它應該支持來自Volley的Google I/O展示的三個完整屏幕。有誰知道我可以如何計算任何給定的Android設備上的三個完整屏幕的內存大小?我認爲這是指內存緩存,所以一個BitmapCache但不確定。用於排球的BitmapLruCache計算緩存大小?
現在我已經看到了下面的計算建議,但不確定這是否與保持三個屏幕值的數據緩存在內存中一致。
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);
}
}
有人可能會對maxMemory/8推理髮表評論嗎? – TestBest
使用位圖緩存的最大內存的1/8的邏輯是什麼? – TestBest