android:在触摸移动时移动 View (ACTION_MOVE)

标签 android touch

我想做一个简单的控件:一个里面有 View 的容器。如果我触摸容器并移动手指,我想移动 View 以跟随我的手指。

我应该使用哪种容器(布局)?如何做到这一点?

我不需要使用表面,而是使用简单的布局。

最佳答案

我发现了一种使用 ViewPropertyAnimator 的简单方法:

float dX, dY;

@Override
public boolean onTouch(View view, MotionEvent event) {

    switch (event.getAction()) {

        case MotionEvent.ACTION_DOWN:

            dX = view.getX() - event.getRawX();
            dY = view.getY() - event.getRawY();
            break;

        case MotionEvent.ACTION_MOVE:

            view.animate()
                    .x(event.getRawX() + dX)
                    .y(event.getRawY() + dY)
                    .setDuration(0)
                    .start();
            break;
        default:
            return false;
    }
    return true;
}

关于android:在触摸移动时移动 View (ACTION_MOVE),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9398057/

相关文章:

android - SDK 管理器执行 :114 java not found error in Ubuntu while running SDK manager

触摸事件上的Android Imageview

javascript - 触摸结束事件在 Chrome 中无法正常工作

javascript - 检测触摸设备上的向左/向右滑动,但允许向上/向下滚动

java - Android从长时间运行的线程接收消息

Android RecyclerView 项目上方有空隙

javascript - 如何使用 mobile safari 停止在 touchend 上滚动?

javascript - 是否可以使用javascript知 Prop 有触摸功能的设备上是否使用了真正的鼠标?

javascript - 如果浏览器在触摸设备上,如何更改图像?

java - 如何从 Retrofit2 获得字符串响应?