0

我使用 canvas.drawBitmap(bitmap, 100, 50, null) 绘制了一个宽度为 200、长度为 100 的矩形位图。因此,位图的原点是画布上的 (100,50)。当我用 MotionEvent.ACTION_DOWN 触摸设备屏幕上位图中心 (200, 100) 的位图并将位图原点设置为位图中心时,位图原点从 (100, 50) 移动到 (200, 100)。有没有办法可以在 ACTION_DOWN 事件之前将位图原点从上/左角转移到位图的中心?或者,有一种方法可以用位图的中心绘制位图?感谢您提前提出任何建议。

4

2 回答 2

1

你有一个绘图的视图。所以你覆盖onTouchEvent(MotionEvent)and onDraw (Canvas canvas)。在onTouchEvent(MotionEvent),你应该调用invalidate ()触发onDraw (Canvas canvas)。因此,从(100, 50) 到(200, 100),只需要通过 方法重新绘制位图即可canvas.drawBitmap(bitmap, x, y, null)

float mOriginalX = 100, mOriginalY = 50;

public boolean onTouchEvent (MotionEvent event) {
  mOriginalX  = 200;
  mOriginalY  = 100;
  invalidate();
}

protected void onDraw (Canvas canvas) {
  canvas.drawBitmap(bitmap, mOriginalX, mOriginalY, null);
}
于 2013-09-29T02:14:15.743 回答
0

当我使用触摸点重置位图绘制点时,为了防止位图绘制点(在上/左角)从位图绘制点移动(JUMP)到触摸点,我计算了触摸点和位图的距离上/左角并使用它们的相对坐标来重置 ACTION_DOWN 和 ACTION_MOVE 事件的位图绘制点。现在,当我触摸设备屏幕时,位图绘制点不会跳转,并且可以用手指平滑移动。

于 2013-10-01T03:55:53.883 回答