我讀的書愈多,就愈親近世界,愈明瞭生活的意義,愈覺得生活的重要。 —— 高爾基
一、獲取移動移動視圖的位置:
獲取移動視圖的距離是爲了幫助視圖通過動畫移動到視圖最初的位置
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();