我有一个按钮(在代码中变量thebutton),并希望能够在其父视图中拖动它.
这是它的OntouchListener:
OntouchListener touchBListener = new VIEw.OntouchListener() { public float offsetX; public float offsetY; @OverrIDe public boolean ontouch(VIEw v, MotionEvent event) { int theAction = event.getAction(); switch (theAction) { case MotionEvent.ACTION_DOWN: // button down offsetX = thebutton.getX() - event.getX(); offsetY = thebutton.getY() - event.getY(); break; case MotionEvent.ACTION_MOVE: // button moved float newX = event.getX() + offsetX; float newY = event.getY() + offsetY; v.setX(newX); v.setY(newY); break; case MotionEvent.ACTION_UP: // button up break; default: break; } return true; } }; thebutton.setontouchListener(touchBListener);
当我拖动按钮时,它会在拖动的大致方向上移动,但它会在拖动之前的“当前”点和一个点之间来回跳跃.由于某种原因,当阻力向右上方移动时,跳跃会更大.
使用OntouchListener是否可以“平滑”拖动,或者我是否需要使用OnDragListener?
解决方法:
我在另一篇文章中找到了答案 – 当我将event.getX()和event.getY()更改为event.getRawX()和event.getRawY()时,拖动是平滑的.
总结以上是内存溢出为你收集整理的Android OnTouchListener导致不稳定的拖动全部内容,希望文章能够帮你解决Android OnTouchListener导致不稳定的拖动所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)