我有这段代码可以在屏幕中触摸的地方放置一个 View 。 但是 View 并没有完全跟随我手指触摸的点。
我可以改善这种行为吗?
要像拖放 API 一样工作但使用 onTouchEvent?
谢谢大家!
@Override
public boolean onTouchEvent(final MotionEvent event) {
final float x = event.getX();
final float y = event.getY();
moveView(x, y);
return super.onTouchEvent(event);
}
private void moveView(float x, float y) {
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
params.leftMargin = Math.round(x);
params.topMargin = Math.round(y);
selectedView.setLayoutParams(params);
}
最佳答案
尝试对您的 x 和 y 坐标进行一些偏移。
//should be on the order of magnitude of the size of the view
float x_offset= 10; //Play with this.
float y_offset= 10; //Play with this.
final float x = event.getX() + x_offset;
final float y = event.getY() + y_offset;
moveView(x, y);
关于android - 使用 OnTouchEvent 移动 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12505180/