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) {
// The cache size will be measured in kilobytes rather than
// number of items.
return bitmap.getByteCount()/1024;
}
};
URL url = new URL("http://s2.goodfon.ru/image/260463-1920x1200.jpg");
Bitmap bitmap = BitmapFactory.decodeStream((InputStream) url.getContent(), null, options);
if(bitmap != null)
Log.i("Success", "BITMAP IS NOT NULL");
String key = "myKey";
Log.i("Get is null", "putting myKey");
mMemoryCache.put(key, bitmap);
Bitmap newBitmap = mMemoryCache.get(key);
if(newBitmap == null)
Log.i("newBitmap", "is null");
Hallo, hier ist ein Code. Ich bekomme Bitmap von URL erfolgreich (Log sagt Bitmap ist nicht null und ich kann es einfach anzeigen). Dann versuche ich, es in LruCache zu bringen und es zurück zu bekommen, aber es gibt null zurück. (Log sagt, dass newBitmap null ist). Wo ist mein Fehler? Erzähl es mir bitte. Android 4.1.2 Cache-Größe 8192 Kb.LruCache funktioniert nicht
Also, haben Sie versucht, dass Ihre Berechnung für die Cache-Größe korrekt ist? Und was gibt 'sizeOf()' aus? Sind Sie sicher, dass das Bild wirklich im Cache ist? – ConcurrentHashMap
http://developer.android.com/training/displaying-bitmaps/cache-bitmap.html. – Raghunandan
Oh, das Bild war 9000 kb, ich dachte seine 1,19 MB als Datei. Problem gelöst. Vielen Dank. Bitte sagen Sie mir, warum 1,19 MB Datei 9000 KB in getByteCount/1024 zurückgibt? – Faceles