在onDraw函数中使用invalidate()方法来触发更新,同时在自定义View类中创建一个用于获取更新后值的函数。具体代码如下所示:
public class MyView extends View {
private int value;
public MyView(Context context) {
super(context);
}
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
// 更新值的函数
public void setValue(int value) {
this.value = value;
// 触发更新
invalidate();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
// 在onDraw函数中使用更新后的值
// 注意:这里的value并非更新后的值,因为invalidate方法还未被调用
int temp = value;
// do something with temp
}
}