我一直在回到 Android 操作系统,并决定研究画布和绘画。
我在这里遇到了一些创建简单绘图应用程序的代码。但我对一件事有点困惑。在绘画类中它这样做:
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 - 主要活动是?只是想就此发表意见。
PS我都试过了,postInvalidate()
也可以。