【问题标题】:Problem with displaying/updating drawable resources显示/更新可绘制资源的问题
【发布时间】:2009-11-06 10:39:08
【问题描述】:

我创建了一个方法 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 永远不会出现。有谁知道为了程序正常工作可以在这里改变什么?

谢谢!

【问题讨论】:

    标签: android resources


    【解决方案1】:

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

    如果您将ImageView 扩展为muteIcon,您可以直接使用或覆盖ImageView.setImageResource(resource)

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-02
        • 2011-09-14
        • 2015-10-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多