android - 使用 OnTouchEvent 移动 View

标签 android touch-event

我有这段代码可以在屏幕中触摸的地方放置一个 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/

相关文章:

javascript - 检测另一个功能上的 mousedown 和 touchstart pageX

android - 无法解析 Butterknife 中的符号 BindViews

android - 写入外部存储文件notfoundexception

java - 从同一类中的另一个方法访问一个方法 - android

android - 当 SqLite 中特定值的计数大于 1 时更新表

android - 处理 Recyclerview 内项目的触摸事件 - android

android - Android 中的上传和下载速率分析

javascript - 如何使用数组触发 touchevents?

javascript - 获取触摸端下的元素

Android EditText - 可编辑但不可选择?