【发布时间】:2013-09-29 01:30:45
【问题描述】:
我使用 canvas.drawBitmap(bitmap, 100, 50, null) 绘制了一个宽度为 200、长度为 100 的矩形位图。因此,位图的原点是画布上的 (100,50)。当我用 MotionEvent.ACTION_DOWN 触摸设备屏幕上位图中心 (200, 100) 的位图并将位图原点设置为位图中心时,位图原点从 (100, 50) 移动到 (200, 100)。有没有办法可以在 ACTION_DOWN 事件之前将位图原点从上/左角转移到位图的中心?或者,有一种方法可以用位图的中心绘制位图?提前感谢您的任何建议。
【问题讨论】:
-
"When I touch the bitmap on my device screen..."好吧,当您默认触摸屏幕时,什么都发生 -- 您在onTouchEvent()方法中做了什么?如果您知道位图的宽度和高度,只需将绘制位图的 x 和 y 坐标分别移动宽度和高度的一半。 -
感谢您的回复。你说的对!我已经编辑了我的问题以使其更清楚。当我触摸我的设备屏幕时,我确实将 ACTION_DOWN 事件的位图原点设置为位图的中心。我想知道是否有一种方法可以在 ACTION_DOWN 事件之前将位图原点设置为位图的中心,或者我可以创建具有中心原点但不是左上角的位图。
-
没有可以设置的“原点”。
drawBitmap()使用 x 和 y 来绘制位图,从左上角开始。您可以将 x 和 y 变量移动宽度和高度的一半,也可以将画布平移相同的量。 -
由于我无法更改位图绘制点(上/左角),我计算了触摸点和位图上/左角的距离,并将它们的相对坐标用于 ACTION_DOWN 和 ACTION_MOVE 事件。现在,当我通过重置位图绘制点触摸设备屏幕时,位图不会从位图绘制点跳转到触摸点。问题解决了!!
标签: android canvas bitmap touch-event