Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何计算相对于在ImageView中绘制的位图的触摸事件?_Android - Fatal编程技术网

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

Android 如何计算相对于在ImageView中绘制的位图的触摸事件?,android,Android,我创建了一个imageView,在其中我在画布上绘制了一个位图。ImageView比我绘制的位图高,因此图像最终垂直居中 在draw方法中,位图的左上角由坐标(0,0)表示,而右下角由(bounds.bottom,bounds.right)表示(使用drawable类中的getBounds获得) 我正在ImageView中跟踪触摸事件。我的问题是,如何计算相对于绘制的位图的触摸事件?我找不到有关绘制位置的信息,无法计算相对事件坐标 例如,触摸位图的左上角将返回位置(0,0)处的事件。只要您确定图

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

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

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


例如,触摸位图的左上角将返回位置(0,0)处的事件。

只要您确定图像居中:

y坐标相对于图像=触摸y坐标-(屏幕高度-图像高度)/2 x_坐标相对于图像=触摸x_坐标-(屏幕宽度-图像宽度)/2

如果它没有在x方向居中,那么如果它是左对齐的,你不需要做任何事情。如果它是右对齐的,那么你减去宽度的差异,但不需要系数2

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

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