最近我尝试在视图上使用ontouch事件,并且我意识到即使我的手指静止,X轴也会在ramdomly上跳过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
那么,我如何获得更高的精确度,或者我的设备是否有这个问题?谢谢你的帮助
答案 0 :(得分:1)
int x = (int) (event.getX(pointerindex) * event.getXPrecision() - lastmovex);
int y = (int) (event.getY(pointerindex) * event.getXPrecision() - lastmovey);
尝试用这个来衡量?