天天看點

Android開發中的動畫(下)--屬性動畫Property Animation

屬性動畫:動畫的執行類來設定動畫操作的對象的屬性、持續時間,開始和結束的屬性值,時間內插補點等,然後系統會根據設定的參數動态的變化對象的屬性

包含方法:ofInt、ofFloat、ofObject

setStartDelay()設定延遲時間

setRepeatCount()設定循環次數

setRepeatMode()重複模式,有RESTART(從頭開始)和REVERSE(倒序開始)

單一動畫的ofObject方法實作

ObjectAnimator.ofFloat(view,"translationX",0F,200F).setDuration(200).start();

translationX-----x軸平移

translationY-----Y軸平移

scaleY-----Y軸縮放

scaleX-----X軸縮放

rotation-----旋轉

rotationX-----X軸翻轉

rotationY-----Y軸翻轉

alpha-----透明度

(2)多動畫可建立AnimatorSet建立動畫的set集合實作

AnimatorSet set=new AnimatorSet();

ObjectAnimator am1=ObjectAnimator.ofFloat(view,"rotation",0F,360F);

ObjectAnimator am2=ObjectAnimator.ofFloat(view,"translationX",0F,200F);

ObjectAnimator am3=ObjectAnimator.ofFloat(view,"translationY",0F,200F);

//set.playTogether(am1,am2,am3);       //----同時執行動畫

//set.playSequentially(am1,am2,am3);   ------按順序執行

set.play(am1).with(am3); //先執行an2和an3,後執行an1

set.play(am1).after(am2);

set.setDuration(1000);

set.start();

(3)屬性動畫的監聽器anim.addListener

動畫一般為手機某些功能的某些視覺效果,是以,可以建立監聽事件在動畫開始或者結束時進行下一步操作.

ObjectAnimator是繼承自ValueAnimator的,ValueAnimator繼承自Animator, ValueAnimator也是繼承自Animator,是以ObjectAnimator,ValueAnimator,ValueAnimator都可以使用監聽器

anim.addListener(newAnimatorListener() {

@Override

public void onAnimationStart(Animator animation) {

}

@Override

public void onAnimationRepeat(Animator animation) {

}

@Override

public void onAnimationEnd(Animator animation) {

}

@Override

public void onAnimationCancel(Animator animation) {

}

});

如果僅實作監聽器中非全部方法,可使用AnimatorListenerAdapter

anim.addListener(newAnimatorListenerAdapter() {

@Override

public void onAnimationEnd(Animator animation) {

}

});