亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

Android怎么根據手勢事件實現拖拽動畫

小億
106
2024-04-23 16:42:53
欄目: 編程語言

要實現拖拽動畫,可以根據手勢事件來獲取用戶拖拽的位置信息,然后根據這個位置信息來更新View的位置,從而實現拖拽動畫。以下是一個簡單的實現示例:

  1. 創建一個自定義View,重寫onTouchEvent方法,處理拖拽事件:
public class DragView extends View {
    private float lastX;
    private float lastY;

    public DragView(Context context) {
        super(context);
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        float x = event.getX();
        float y = event.getY();

        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                lastX = x;
                lastY = y;
                break;
            case MotionEvent.ACTION_MOVE:
                float offsetX = x - lastX;
                float offsetY = y - lastY;
                layout((int) (getLeft() + offsetX), (int) (getTop() + offsetY),
                        (int) (getRight() + offsetX), (int) (getBottom() + offsetY));
                break;
        }

        return true;
    }
}
  1. 在Activity中使用DragView,并添加拖拽動畫:
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final DragView dragView = findViewById(R.id.drag_view);

        dragView.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {
                switch (motionEvent.getAction()) {
                    case MotionEvent.ACTION_DOWN:
                        ObjectAnimator.ofFloat(dragView, "alpha", 1f, 0.5f).start();
                        break;
                    case MotionEvent.ACTION_UP:
                        ObjectAnimator.ofFloat(dragView, "alpha", 0.5f, 1f).start();
                        break;
                }
                return false;
            }
        });
    }
}

在這個示例中,當用戶按下時,View的透明度會降低,松開時透明度會恢復。你可以根據需要添加更多動畫效果,比如縮放、旋轉等。

0
沁源县| 锡林郭勒盟| 杂多县| 循化| 内黄县| 邓州市| 敖汉旗| 惠水县| 阳高县| 宜城市| 隆尧县| 郯城县| 资源县| 富源县| 治多县| 庐江县| 商河县| 广德县| 临高县| 黔南| 新和县| 浑源县| 葵青区| 台南市| 贡嘎县| 巫山县| 丹棱县| 舞阳县| 阳城县| 班戈县| 安化县| 根河市| 开阳县| 海门市| 天水市| 桂林市| 南开区| 清远市| 鹤庆县| 迁西县| 广平县|