【发布时间】:2012-02-01 01:06:03
【问题描述】:
我对@987654321@ 进行了子类化,以获得用户可以用手指在其上“绘图”的视图。我实现了接口View.OnTouchListener。
如何在onTouch 方法中触发视图的重绘?我是否需要实现线程/可运行?我以为invalidate()会触发重绘,但这不起作用。
【问题讨论】:
标签: android android-widget android-view
我对@987654321@ 进行了子类化,以获得用户可以用手指在其上“绘图”的视图。我实现了接口View.OnTouchListener。
如何在onTouch 方法中触发视图的重绘?我是否需要实现线程/可运行?我以为invalidate()会触发重绘,但这不起作用。
【问题讨论】:
标签: android android-widget android-view
只需在视图的 onTouchEvent 方法中调用 this.invalidate,它确实应该工作除非你没有在你的 onDraw 方法中做正确的事情。确保你引用的是正确的画布在覆盖的 onDraw 方法中绘制事物,而不是例如构造函数。
@Override
public boolean onTouchEvent(MotionEvent event) {
this.invalidate();
return true;
}
【讨论】:
this.setOnTouchListener(this); 现在可以正常使用了!