1郁岩、ObjectAnimator
創(chuàng)建一個 ObjectAnimator 需通過其靜態(tài)工廠類直接返還一個 ObjectAnimator對象
ObjectAnimatior animator = ObjectAnimator.ofFloat(view,"translationX",200)
animator.setDuration(500)
animator.start()
常用的動畫屬性包括:
平移translationX,translationY
旋轉(zhuǎn)rotation蓖墅,rotationX芦拿,rotationY
PrivotX和PrivotY:控制View對象的支點位置,圍繞這個支點進行旋轉(zhuǎn)和縮放變換處理
透明度alpha:”默認是1(不透明),0代表完全透明炭懊。
x和y:描述View對象在其容器中的最終位置
在使用ObjectAnimator的時候,要操作的屬性必須要有g(shù)et和set方法拂檩,因此也可以做一些自定義屬性進行相應(yīng)的控制侮腹,例如進行View的寬度控制,但是寬度需要自定義getWidth稻励,setWidth方法父阻。
2、ValueAnimator
ValueAnimator不提供任何動畫效果望抽,它更像一個數(shù)值發(fā)生器加矛,用來產(chǎn)生有一定規(guī)律的數(shù)字,從而讓調(diào) 用者控制動畫的實現(xiàn)過程煤篙,使用ValueAnimator的AnimatorUpdateListener中監(jiān)聽數(shù)值的變化斟览,完成動畫的變換。
ValueAnimator animator = ValueAnimator.ofFloat(0,100)
animator.setTarget(view)
animator.setDuration(500).start()
animator.addUpdateListener(new AnimatorUpdateListener(){
@Override
public void onAnimatorUpdata(ValueAnimator value){
Float mFloat = (Float)value.getAnimatorValue()
}
})
3辑奈、動畫的監(jiān)聽
完整的動畫具有start苛茂、Repeat、End身害、Cancel這4個過程味悄,即實現(xiàn)Animator.AnimatorListener接口的方法,如果不關(guān)心所有的流程方法可以實現(xiàn)AnimatorListenterAdaper進行選擇自己關(guān)注的方法進行處理塌鸯。
4侍瑟、AnimatorSet組合動畫,可以調(diào)用其with丙猬,before涨颜,after進行組合執(zhí)行,after由兩個重載方法一個傳入時間表示延遲多長時間執(zhí)行茧球,另一個傳入ValueAnimator或者ObjectAnimator表示在play方法傳入的動畫之后執(zhí)行庭瑰。
5、PropertyValuesHolder組合動畫
用PropertyValuesHolder類只能是多個動畫一起執(zhí)行抢埋,需結(jié)合 ObjectAnimator.ofPropertyValuesHolder(Object target弹灭,PropertyValuesHolder…values)方法來使用督暂。其第 一個參數(shù)是動畫的目標對象;之后的參數(shù)是PropertyValuesHolder類的實例穷吮,可以有多個這樣的實例逻翁,代表共同執(zhí)行的動畫。
PropertyValuesHolder holder = PropertyValuesHolder .ofFloat("translationX",0,100,0)