自定义属性动画

来源:互联网 发布:视频剪辑软件学习 编辑:程序博客网 时间:2024/06/13 21:27
public class Main3Activity extends AppCompatActivity {    private Button bt_start,bt_start1,bt_start2,bt_run;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main3);        bt_start= (Button) findViewById(R.id.bt_start);        bt_start1= (Button) findViewById(R.id.bt_start1);        bt_start2= (Button) findViewById(R.id.bt_start2);        bt_run= (Button) findViewById(R.id.bt_run);        bt_start.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                baseAnim();            }        });        bt_start1.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                zuheAnim();            }        });        bt_start2.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                oneByOne();            }        });    }    /*    * 基本动画    */    private void baseAnim(){        ObjectAnimator anim=ObjectAnimator.ofFloat(bt_run,"Alpha",0f,1f,0.5f);        anim.setInterpolator(new AccelerateDecelerateInterpolator());        anim.setDuration(3000);        anim.setRepeatCount(3);        anim.start();    }    /*    * 组合动画    */    private void zuheAnim(){        PropertyValuesHolder rotationX=PropertyValuesHolder.ofFloat("RotationY",0f,360f,0f);        PropertyValuesHolder scalX=PropertyValuesHolder.ofFloat("ScaleX",0f,2f,1f);        ObjectAnimator animator=ObjectAnimator.ofPropertyValuesHolder(bt_run,rotationX,scalX);        animator.setDuration(3000);        animator.start();    }    /*    * 顺序播放动画    */    private void oneByOne(){        ObjectAnimator rotationY=ObjectAnimator.ofFloat(bt_run,"RotationY",0f,360f,0f);        ObjectAnimator scaleX=ObjectAnimator.ofFloat(bt_run,"ScaleX",0f,2f,1f);        ObjectAnimator translationX=ObjectAnimator.ofFloat(bt_run,"TranslationX",0f,100f,-100f);        AnimatorSet set=new AnimatorSet();        set.setDuration(3000);        //同时播放        //set.playTogether(rotationY,scaleX);        //顺序播放        set.play(rotationY).with(scaleX).after(translationX);        set.start();    }}
原创粉丝点击