答案 0 :(得分:0)
如果您拥有来自View的所有儿童课程,则可以覆盖
@Override
public boolean onTouchEvent(MotionEvent event) {
final Point point = new Point((int) event.getX(), (int) event.getY());
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
press(point);
break;
case MotionEvent.ACTION_MOVE:
drag(point);
break;
case MotionEvent.ACTION_UP:
release(point);
break;
}
return true;
}
在方法press(Point point)
中,您需要使用point to point
或point to line
距离来确定哪个要素最接近被选中。方法drag(Point point)
可以帮助您拖动矩形。
<强>图纸强>
绘图应该在onDraw(Canvas canvas)
方法中进行,但实例化应该在此方法之外。因此,您在构造函数中创建Rect
Rect rect = new rect(10, 10, 100, 100)
<强>调整大小强>
当您尝试调整大小时,您不需要创建一个新的Rect,您只需使用
rect.set(x, y, dx, dy)
<强>旋转强>
当您想要旋转时,需要旋转Canvas然后绘制,然后再旋转以绘制其他内容。
canvas.save();
canvas.rotate(45);
canvas.drawRect(rect, paint);
canvas.restore();