屬性動畫:動畫的執行類來設定動畫操作的對象的屬性、持續時間,開始和結束的屬性值,時間內插補點等,然後系統會根據設定的參數動态的變化對象的屬性
包含方法: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) {
}
});