我是新來的Android的LruCache,我想把這個緩存中的位圖圖像(JPEG),以防止內存錯誤和內存異常, 所以我不明白爲什麼我的代碼不工作。這裏是我的代碼:android:LruCache返回null
ImageView imageview = (ImageView)findViewById(R.id.imageView1);
Bitmap b = BitmapFactory.decodeFile(imagePath);
mMemoryCache.put("mykey", b);
b = mMemoryCache.get("mykey");
imageview.setImageBitmap(b);
,這是我LruCache代碼:
import android.support.v4.util.LruCache;
...
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final int maxMemory = (int) (Runtime.getRuntime().maxMemory()/1024);
final int cacheSize = maxMemory/8;
mMemoryCache = new LruCache<String, Bitmap>(cacheSize) {
@Override
protected int sizeOf(String key, Bitmap bitmap) {
return (bitmap.getRowBytes() * bitmap.getHeight() * 4)/1024;
}
};
}
我不知道爲什麼不工作:( 感謝
感謝您的答覆,但我改線 最終詮釋的cachesize = maxMemory/8; 至 final int cacheSize = maxMemory; 但沒有改變 – Amir