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(); } }
自定义属性动画
最新推荐文章于 2023-10-23 07:45:00 发布