91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
百色市| 宜丰县| 柳州市| 土默特左旗| 太原市| 阿拉善盟| 武强县| 金平| 平远县| 台州市| 莒南县| 伊吾县| 通州市| 拉萨市| 多伦县| 扶沟县| 七台河市| 墨竹工卡县| 隆昌县| 德江县| 潮安县| 祁门县| 巴马| 石屏县| 丹凤县| 长汀县| 巴南区| 大宁县| 泊头市| 土默特左旗| 滨州市| 龙江县| 洛川县| 盐边县| 包头市| 沙湾县| 湖北省| 疏附县| 泸西县| 巩义市| 印江|