通过 setter 更新 customView 中的颜色
Update color in customView by setter
我有 CustomView,它工作正常。
现在我需要通过代码更改一些项目颜色。
所以这是我的代码:
CustomView cv = new CustomView(mContext);
cv.setItemColor(Color.parseColor("#e77400"));
在我的自定义视图中,我添加了方法:
public void setItemColor(int color){
mItemColorDefault = color;
invalidate();
requestLayout();
}
但此后什么也没有发生,customView 也没有刷新...
请帮忙解决这个问题。
谢谢!
- 除非
CustomView
的大小没有改变,否则不需要调用 requestLayout()
。此方法只涉及视图定位更新。
- 您必须覆盖
onDraw()
方法,因为它是绘制视图的地方。 invalidate()
方法导致 onDraw()
被调用。
使用 mItemColorDefault
颜色在 onDraw()
. 中绘制视图
这里是覆盖了 onDraw()
方法的自定义视图示例:
希望这能有所帮助。
我有 CustomView,它工作正常。 现在我需要通过代码更改一些项目颜色。 所以这是我的代码:
CustomView cv = new CustomView(mContext);
cv.setItemColor(Color.parseColor("#e77400"));
在我的自定义视图中,我添加了方法:
public void setItemColor(int color){
mItemColorDefault = color;
invalidate();
requestLayout();
}
但此后什么也没有发生,customView 也没有刷新... 请帮忙解决这个问题。 谢谢!
- 除非
CustomView
的大小没有改变,否则不需要调用requestLayout()
。此方法只涉及视图定位更新。 - 您必须覆盖
onDraw()
方法,因为它是绘制视图的地方。invalidate()
方法导致onDraw()
被调用。 使用mItemColorDefault
颜色在onDraw()
. 中绘制视图
这里是覆盖了 onDraw()
方法的自定义视图示例:
希望这能有所帮助。