Animator --屬性動畫

屬性動畫Animator     、傳統動畫  Animation

傳統動畫:   eg.  平移---

TranslateAnimation animation=new TA(0 ,200 ,0 ,0); //參數:初始/最終  的   X/Y座標              

animation.setDuration( 1000); //延遲時間

animation.setFillAfter( true); //停在最終位置             

ImageView iv=() fv~( ); //控件 初始化             

iv.startAnimation(animation); //啓動              

//     移動後,原點擊事件仍然在初始位置                                            


屬性動畫:

public class AnimatorActivity extends Activity {

    private ImageView main_iv;
    private ImageView c_iv;
    private ImageView d_iv;
    private ImageView e_iv;

    ObjectAnimator oa_3;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.animator);

        init();
        setAnimator();
    }

    private void setAnimator() {    //設置動畫 --對象、屬性、X/Y絕對位置(起始、終止
        //ObjectAnimator.ofFloat(main_iv,"translationX",0,200).setDuration(1000).start();
//        PropertyValuesHolder pv1=PropertyValuesHolder.ofFloat("rotation",0,360f); //參數--屬性及其屬性值
//        ObjectAnimator.ofPropertyValuesHolder(c_iv,pv1).setDuration(9000).start();    //對象、動畫
        /**利用動畫集完成多個動畫*/
        ObjectAnimator oa_1=new ObjectAnimator().ofFloat(main_iv,"translationY",0,100);
        ObjectAnimator oa_2=new ObjectAnimator().ofFloat(c_iv,"translationX",0,200);
        oa_3=new ObjectAnimator().ofFloat(d_iv,"translationX",230,30);
        AnimatorSet set= new AnimatorSet();
        //set.playTogether(oa_1,oa_2,oa_3);   //動畫集,同時播放
        set.play(oa_1).with(oa_2);      //可對每一個進行控制
        set.play(oa_3).after(oa_1);
        set.setDuration(2300).start();
        /**點擊事件*/
        initListener();

    }

    private void initListener() {
        oa_3.addListener(new Animator.AnimatorListener() {
            @Override
            public void onAnimationStart(Animator animation) {

            }

            @Override
            public void onAnimationEnd(Animator animation) {
                ObjectAnimator.ofFloat(e_iv,"rotation",0,360).setDuration(2300).start();
            }

            @Override
            public void onAnimationCancel(Animator animation) {

            }

            @Override
            public void onAnimationRepeat(Animator animation) {

            }
        });
    }

    private void init() {
        main_iv= (ImageView) findViewById(R.id.iv_main);
        c_iv= (ImageView) findViewById(R.id.iv_c);
        d_iv= (ImageView) findViewById(R.id.iv_d);
        e_iv= (ImageView) findViewById(R.id.iv_e);
    }
}public class MyAnimatorActivity extends Activity implements View.OnClickListener{

    private int[] res={R.id.iv_main,R.id.iv_c,R.id.iv_d,R.id.iv_e};
    private List list_iv=new ArrayList<>();
    private boolean flag=true;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.my_animator);

        init();
    }
//實例化控件,並將其加入到List中,順便實現點擊事件
    private void init() {
        for(int i=0;i



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