-1

最近我尝试在视图上使用 ontouch 事件,我意识到即使我的手指静止,X 轴也会随机跳跃超过 5 或 10 像素,是硬件问题吗?我读到 ontouch 移动事件是不精确的,然后我想知道我怎样才能做到精确。

case MotionEvent.ACTION_DOWN:

    lastmovex = (int) event.getX();
    lastmovey = (int) event.getY();

    break;

case MotionEvent.ACTION_MOVE:

    int x = (int) event.getX(pointerindex) - lastmovex;
    int y = (int) event.getY(pointerindex) - lastmovey;
    Log.d(TAG,"move x="+x+" y="+y);
    break;

这告诉我(手指仍然在一点):

move x=0 y=0
move x=-2 y=0
move x=0 y=0
move x=1 y=0
move x=-5 y=0
move x=3 y=0
move x=1 y=0
move x=0 y=0

那么,我怎样才能获得更高的精度,或者我的设备是否有这个问题?谢谢你的帮助

4

1 回答 1

1
int x = (int) (event.getX(pointerindex) * event.getXPrecision()  - lastmovex);
int y = (int) (event.getY(pointerindex) * event.getXPrecision()  - lastmovey);

试着用这个来衡量?

于 2013-02-04T16:16:51.427 回答