У меня есть список с 100 различными изображениями.Мой кеш выглядит следующим образом:
public class ImageCache {
HashMap<String, SoftReference<Drawable>> myCache;
....
....
public void putImage(String key, Drawable d) {
myCache.put(key, new SoftReference<Drawable>(d));
}
public Drawable getImage(String key) {
Drawable d;
SoftReference<Drawable> ref = myCache.get(key);
if(ref != null) {
//Get drawable from reference
//Assign drawable to d
} else {
//Retrieve image from source and assign to d
//Put it into the HashMap once again
}
return d;
}
}
У меня есть собственный адаптер, в котором я устанавливаю значок ImageView, извлекая из моего кеша рисование.Программа, большинство изображений из ListView исчезает через некоторое время, а некоторые из них даже не там, на первом месте.Вместо этого я заменил HashMap жесткой ссылкой.Мол,
HashMap<String, Drawable> myCache
И этот кусок кода работает.Я хочу оптимизировать мой код.Любые предложения.