android - onTouch event.getX 或 Y 在不同屏幕尺寸上的一致性 - Android

标签 android android-layout android-view android-event android-screen-support

我正在自定义 View 上实现 OnTouchListener。在这个 View 中,我正在绘制一个基本上沿 x 轴和 y 轴移动的对象,我分别从 event.getX();event.getY(); 获得。

我想在屏幕中的特定位置发生触摸事件时执行一些 draw 更改。问题是,这些值对于不同的屏幕尺寸是不同的。例如,X 点的值在 WVGA 设备上是 60 而在平板电脑 上是 100。由于这是不一致的,我无法编写正确的 if 条件。

请问有人可以根据您之前的经验提出解决方案吗?

最佳答案

您可以设置接收触摸事件的基本屏幕尺寸,例如 800 x 600。然后您可以获得设备的实际分辨率,并按此缩放您的基本尺寸。即 X 尺寸为(800/设备宽度),然后您将设备屏幕触摸坐标乘以该比例因子以获得“翻译”版本。

关于android - onTouch event.getX 或 Y 在不同屏幕尺寸上的一致性 - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11347428/

相关文章:

android - 将字符串传递给 fragment

android - 将 Stripe token 传递给服务器并在服务器上处理

android - 在 Android 中的蓝牙打印机上打印图像

android - 状态机和 Intent

android - 在其他 View 的背景中显示一个 View ?

java - 将 XML 数据(文件)绑定(bind)到 android 中的 GridView ?

android - 隐藏View的平移动画

java - 试图获取 UTC 日期时间强制关闭应用程序

Android Studio 找不到 com.android.tools.build :grade:2. 10

android - 具有图层列表背景可绘制的自定义 View 呈现黑屏