Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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_Imageview_Screen_Touch Event_Ontouchlistener - Fatal编程技术网

Android 获取imageview上的触摸事件坐标

Android 获取imageview上的触摸事件坐标,android,imageview,screen,touch-event,ontouchlistener,Android,Imageview,Screen,Touch Event,Ontouchlistener,我在ImageView上有一个onTouchListener,我使用event.getX()或getY()。 我的目标是当用户触摸我的图像的特定部分时,显示一个图像并启动一个对话框或其他东西。 问题是,在不同的屏幕上,图像视图的同一部分的X et Y值会发生变化 如何在每个屏幕上以像素为单位获取事件的真实位置? 例如,我想显示一张Android人脸,当用户在他的眼睛里点击时做一些事情…编写代码,使用固定分辨率(例如480x640)在指定点检测触摸。然后使用DisplayMetrics获取应用程序

我在ImageView上有一个onTouchListener,我使用event.getX()或getY()。 我的目标是当用户触摸我的图像的特定部分时,显示一个图像并启动一个对话框或其他东西。 问题是,在不同的屏幕上,图像视图的同一部分的X et Y值会发生变化

如何在每个屏幕上以像素为单位获取事件的真实位置?
例如,我想显示一张Android人脸,当用户在他的眼睛里点击时做一些事情…

编写代码,使用固定分辨率(例如480x640)在指定点检测触摸。然后使用DisplayMetrics获取应用程序正在运行的设备的分辨率。计算xScale和yScale(例如DisplayMetrics.widthPixels/480)并将x和y乘以这些比例因子。

使用屏幕的当前密度值非常有效。