android ValueAnimator ObjectAnimator

android  PropertyAnimator 在API  11 過後才引入的     它完全可以替代     TweenAnimation

PropertyAnimator    分成兩個類   ValueAnimator       ObjectAnimator

ValueAnimator    

 看名字 就知道是   數值動畫       就是然一個值    從多少  到多少,  只是將類似動畫的效果用到了數值上面;

具體的作用本來是想寫一篇  理解筆記的但是看到大牛寫的一篇文章太詳細了,我就不在寫了,這裏推薦出來

點擊查看 : Animation——ValueAnimator基本使用 

ObjectAnimator

ObjectAnimator其實是繼承至ValueAnimator

public final class ObjectAnimator extends ValueAnimator 
三種方法  創建ObjectAnimator

 1、 java 代碼ObjectAnimator.ofXXX()的方式創建

//ivJack.getTranslationX();
//ivJack.setTranslationX();
// 就是凡是可以用set  get方法得到的屬性都可以進行 屬性動畫
//如果不確定 屬性值的名字    就用set  get 先嚐試一下
ObjectAnimator  tranX  = ObjectAnimator.ofFloat(ivJack,"translationX",100,300,200,500);
//就是 x座標  先移動到100 再移動到300  再從300移動到200  再從200移動到500
tranX.setDuration(3000);   //動畫執行一次的時長  重複一次就再加一倍
tranX.setRepeatCount(1);//重複的次數
tranX.setRepeatMode(ObjectAnimator.RESTART);//重複的方式
tranX.setStartDelay(1000);//開始延時
tranX.start();

2、第二種方式   先創建 PropertyValuesHolder

PropertyValuesHolder  p1 = PropertyValuesHolder.ofFloat("scaleX",2f,0.5f,1);
PropertyValuesHolder  p2 = PropertyValuesHolder.ofFloat("scaleY",2f,0.5f,1);
ObjectAnimator ob = ObjectAnimator.ofPropertyValuesHolder(ivJack, p1, p2);
ob.start();

3、第三種方式  通過創建xml  文件



//加載xml 文件中加載的動畫
ObjectAnimator ro = (ObjectAnimator) AnimatorInflater.loadAnimator(this, R.animator.rotate_animator);
//補間動畫用的是AnimationUtils      屬性動畫用的是AnimatorInflater
ro.setTarget(ivJack); // 設置動畫對象
ro.start();

還要有一個 AnimatorSet類

 AnimatorSet set = new AnimatorSet();
 set.playSequentially(animator1,animator2,animator3);//有序播放
// set.playTogether(animator1,animator2,animator3);//一起播放
// set.play(animater1).with(Animater2).after(animator3).before(animator4);// 自定義順序播放
 set.start();
當然也可以通過xml代碼生成


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