中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

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
北票市| 巩义市| 成武县| 合阳县| 周至县| 越西县| 织金县| 宿松县| 文化| 永州市| 竹溪县| 女性| 乌兰察布市| 兴海县| 左权县| 荣成市| 泸定县| 巴彦县| 涟水县| 驻马店市| 兴文县| 青神县| 彭山县| 潮安县| 天等县| 吴川市| 宣城市| 宁河县| 岗巴县| 宜州市| 石狮市| 温宿县| 寿宁县| 洛浦县| 茌平县| 石家庄市| 小金县| 昭平县| 青海省| 闵行区| 措勤县|