0

我有一个像这样的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;
    }

它工作正常,但有时它不会返回正确的可绘制对象,就像我有 2 个活动 A 和 B,在活动 A 中我有一个带有可绘制集的按钮,现在我从 A -> B 移动,然后回到 A绘图未加载的时间,但是当我触摸该按钮时,绘图可见。

为什么会发生这种情况?,我已经删除了 haspMap 并检查了它的负载是否正确,当我从 A->B 移动并返回 A 时,但如果我不使用 Hashmap,屏幕会出现延迟。

我以这种方式使用 getDrawable():

button.setBackgroundDrawable(getDrawable(name,context,bitmap);
4

1 回答 1

0

您可以使用

button.setBackgroundDrawable(getDrawable(name,context,bitmap)

在方法中onResume()。顺便说一下,不推荐你的实现,容易造成内存泄漏。有关更多详细信息,请参阅

于 2013-09-06T07:44:23.087 回答