1

我创建了一个 imageView,在其中我在画布上绘制了位图。ImageView 比我绘制的位图高,所以图像最终垂直居中。

在draw方法中,位图的左上角用坐标(0,0)表示,右下角用(bounds.bottom, bounds.right)表示(使用drawable类中的getBounds获得。

我正在跟踪 ImageView 中的触摸事件。我的问题是,我如何计算相对于绘制的位图的触摸事件?我找不到有关可绘制的绘制位置的信息来计算相对事件坐标。

例如,触摸位图的左上角会在 (0,0) 位置返回一个事件。

4

1 回答 1

0

只要您确定图像居中:

y_coordinate_relative_to_image = touch_y_coordinate - (screen_height - image_height)/2 x_coordinate_relative_to_image = touch_x_coordinate - (screen_width - image_width)/2

如果它也不是在 x 方向上居中,那么如果它是左对齐的,你就不必做任何事情。如果它是正确的,那么你减去宽度的差异,但没有两个因素。

话虽如此,您可能会遇到以下问题:

Android 触摸输入:坐标?

如果您的 AndroidManifest.xml 配置不正确,触摸坐标的范围似乎与屏幕像素分辨率不同。

于 2013-01-31T23:43:48.417 回答