如何计算相对于在ImageView中绘制的位图的触摸事件?

时间:2013-01-31 22:07:51

标签: android

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

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

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

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

1 个答案:

答案 0 :(得分: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方向的中心,那么如果它左对齐你就不必做任何事情。如果它是正确的,那么你减去宽度的差异,但没有因子2。

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

Android touch input: Coordinates?

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