app開發仿照攜程切換往返地點動畫效果

我讀的書愈多,就愈親近世界,愈明瞭生活的意義,愈覺得生活的重要。 —— 高爾基

              

一、獲取移動移動視圖的位置:

獲取移動視圖的距離是爲了幫助視圖通過動畫移動到視圖最初的位置

 view.post(new Runnable() {
            @Override
            public void run() {
                int[] locationView1 = new int[2];
                int[] locationView2 = new int[2];
                view1.getLocationOnScreen(locationView1);
                view2.getLocationOnScreen(locationView2);
                //移動視圖之間的距離
                ivZfbView12Dis = locationWx[0] - locationZfb[0];
            }
        });

二、開啓旋轉或者移動動畫:

移動動畫屬性名稱propertyName,X軸移動translationX,Y軸移動translationY

 ObjectAnimator translationA = ObjectAnimator.ofFloat(iv, "translationX", startTranX, endTranX);
        translationA.setDuration(1000);
        translationA.start();

如果從左向右移動:startTranX > endTranX;如果從右向左移動:startTranX < endTranX。

 ObjectAnimator translationA = ObjectAnimator.ofFloat(iv, "translationX", 0, 400);
        translationA.setDuration(1000);
        translationA.start();
 ObjectAnimator translationA = ObjectAnimator.ofFloat(iv, "translationX", 0, -400);
        translationA.setDuration(1000);
        translationA.start();

旋轉動畫:

屬性名稱propertyName設置rotation位旋轉,然後設置旋轉角度,此處setRepeatMode設置是爲了下一次動畫會從新開始,若不設置只會執行一次。

 ObjectAnimator rotationA = ObjectAnimator.ofFloat(ivMiddle, "rotation", 0, 360);
        rotationA.setDuration(1000);
        rotationA.setRepeatMode(ValueAnimator.RESTART);
        rotationA.start();

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章