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");
Witam, oto kod. Dostaję bitmapę z adresu URL z powodzeniem (Log mówi, że mapa bitowa nie jest pusta i mogę ją łatwo wyświetlić). Następnie próbuję umieścić go w LruCache i odzyskać, ale zwraca zero. (Log mówi, że newBitmap ma wartość null). Gdzie jest mój błąd? Powiedz mi, Proszę. Android 4.1.2 Rozmiar pamięci podręcznej 8192 Kb.LruCache nie działa
Czy próbowałeś, aby obliczenia rozmiaru pamięci podręcznej były prawidłowe? I co znaczy "sizeOf()"? Czy na pewno obraz znajduje się naprawdę w pamięci podręcznej? – ConcurrentHashMap
http://developer.android.com/training/displaying-bitmaps/cache-bitmap.html. – Raghunandan
Och, ten obraz był 9000 kb, myślałem, że jego 1.19 mb jako plik. Problem rozwiązany. Dziękuję Ci. Plaese, powiedz mi, dlaczego plik 1.19 mb zwraca 9000 kb w getByteCount/1024? – Faceles