显示/更新可绘制资源的问题

时间:2009-11-06 10:39:09

标签: android resources

我创建了一个方法updateGUI(),其中包含以下方法调用:

if (settings.isMute()) {
            muteIcon.setIconImage(R.drawable.ic_volume_off_small);
} else {
            muteIcon.setIconImage(R.drawable.ic_volume_small);
}

其中setIconImage()的定义方式如下:

public void setIconImage(int imageFromResources) {
    iconImage = BitmapFactory.decodeResource(mContext.getResources(), imageFromResources);
    iconWidth = iconImage.getWidth();
    iconHeight = iconImage.getHeight();
    invalidate();

}

运行此代码时,图标图像不会发生变化。有两个图像存储在res / drawable目录中,但ic_volume_off_small永远不会出现。有谁知道这里可以改变什么,以便程序按预期工作?

谢谢!

2 个答案:

答案 0 :(得分:0)

这是MuteIcon的基类?如果它像ImageView一样,你应该调用超类的方法来实际更新图像。

答案 1 :(得分:0)

如果这些是View孩子的方法,则必须覆盖View.onDraw()方法,告诉系统如何在invalidate之后绘制iconImage中存储的图像。

如果您为muteIcon延长ImageView,则可以直接使用或覆盖ImageView.setImageResource(resource)