0

我使用触摸事件来查找用户触摸的位置。我使用了以下代码

@Override
    public boolean onTouch(View v, MotionEvent event) {

        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
              float x=event.getX();
              float y=event.getY();

              Log.d("MULTIPLE", "X=" + x + " Y=" + y);
         }
        return true;
     }

并根据位置调用一些方法。

当我在不同的设备上测试时,x 和 y 值发生了变化。有没有办法在所有设备上获得 x 和 y 的唯一值

4

3 回答 3

3

我通过以下方式解决了这个问题

通过这种方式可以找到设备的中点

X=设备宽度 * 0.5

Y=设备高度 * 0.5

调用 0.5 作为 heightFactor 和 widhtFactor

设备中的任何其他点都有自己的 heightFactor 和 widhtFactor

我们从 onTouch 事件(event.getX() 和 event.getY())中获取 X 和 Y 值

所以要找到 heightFactor 和 widhtFactor

heightFactor =X/deviceHeight

宽度因子=Y/设备宽度

因此我们得到每个点的 heightFactor 和 widhtFactor ,这对于所有设备都是相同的

于 2014-06-13T06:33:36.587 回答
1

我不确定“在不同设备中 x 和 y 值发生变化”的真正含义,因为如果用户触摸屏幕,即使在同一设备上,这些值也会发生变化。你可以看看getRawX()getRawY()方法。这些值未调整包含窗口和视图。

于 2014-06-09T09:03:29.497 回答
0

您可以找到 ontouch 事件,developers.android.com 在此页面上提供培训,在此处查找

于 2014-06-09T09:09:20.610 回答