我有像这样的HashMap
HashMap<String, BitmapDrawable> bitmapDrawables = new HashMap<String, BitmapDrawable>();
现在我有一个方法可以返回drawable:
public static BitmapDrawable getDrawable(String fileName, Context context,Bitmap bitmap) {
BitmapDrawable drawable = bitmapDrawables.get(fileName);
if (drawable == null) {
drawable = convertBitmapToDrawable(bitmap, context);// will convert the bitmap to drawable
bitmapDrawables.put(fileName, drawable);
}
return drawable;
}
它工作正常但有时它不会返回正确的drawable,就像我有2个活动A和B,在Activity A中我有一个带有drawable set的按钮,现在我从A移动 - &gt; B然后回到A,那时drawable没有加载,但是当我触摸那个按钮时,drawable是可见的。
为什么会发生这种情况?,我已经删除了haspMap并正确检查了它的负载,当我从A-> B移动并返回A时,但如果我不使用Hashmap,则屏幕会出现延迟。
我以这种方式使用getDrawable():
button.setBackgroundDrawable(getDrawable(name,context,bitmap);
答案 0 :(得分:0)
您可以使用
button.setBackgroundDrawable(getDrawable(name,context,bitmap)
方法onResume()
中的。顺便说一下,不推荐您的实现,会导致内存泄漏。有关详细信息,请参阅this