我创建了一个方法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永远不会出现。有谁知道这里可以改变什么,以便程序按预期工作?
谢谢!
答案 0 :(得分:0)
这是MuteIcon的基类?如果它像ImageView一样,你应该调用超类的方法来实际更新图像。
答案 1 :(得分:0)
如果这些是View
孩子的方法,则必须覆盖View.onDraw()
方法,告诉系统如何在invalidate
之后绘制iconImage
中存储的图像。
如果您为muteIcon
延长ImageView
,则可以直接使用或覆盖ImageView.setImageResource(resource)
。