【发布时间】:2013-06-04 14:29:26
【问题描述】:
我已经回到 Android 操作系统并决定研究画布和绘画。
我遇到了一些代码here,它创建了一个简单的绘画应用程序。但我对一件事有点困惑。在绘画类中它这样做:
public boolean onTouch(View view, MotionEvent event) {
// Point holds two integer coordinates
Point point = new Point();
point.x = event.getX();
point.y = event.getY();
// Add the coordinates to the array list
points.add(point);
invalidate();
Log.d(TAG, "point: " + point);
return true;
}
根据invalidate() 上的悬停消息:
这必须从 UI 线程调用。要从非 UI 线程调用,请调用 postInvalidate()。 使整个视图无效。 如果视图可见,onDraw(android.graphics.Canvas) 将在未来的某个时间点被调用。这必须从 UI 线程调用。要从非 UI 线程调用,请调用 postInvalidate()。
所以 - 这不应该调用 postInvalidate() 而不是 invalidate() 因为 Paint 类不是 UI - 主要活动是?只是想就此发表意见。
附:我都试过了,postInvalidate() 也可以。
【问题讨论】: