第一种:TranslateAnimation 动画效果演示:
public void move(View view) { // 传统动画效果 TranslateAnimation animation=new TranslateAnimation(0, 500, 0, 0); // 时间 animation.setDuration(500); // 设置移动后的位置不恢复 animation.setFillAfter(true); ImageButton img=(ImageButton) findViewById(R.id.img); TextView tv=(TextView) findViewById(R.id.lab); // 设置动画效果 控件 img.startAnimation(animation); tv.startAnimation(animation); Toast.makeText(this, "移动时间", Toast.LENGTH_SHORT).show(); }
XML 配置按钮时间
<Button android:gravity="center" android:layout_marginTop="500sp" android:layout_marginStart="30sp" android:layout_marginLeft="30sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="移动按钮" android:id="@+id/btn" android:onClick="move"
使用-------------使用ObjectAnimator----------360
// -------------使用ObjectAnimator---------- ObjectAnimator animator=new ObjectAnimator();// animator.ofFloat(img, "translationY", 0,100).setDuration(1000).start(); if(flag) { animator.ofFloat(img, "Y", 0,300).setDuration(1000).start(); animator.ofFloat(img, "X", 0,300).setDuration(1000).start(); animator.ofFloat(img, "rotation", 0,360).setDuration(1000).start(); flag=false; } else { animator.ofFloat(img, "Y", 300,0).setDuration(1000).start(); animator.ofFloat(img, "X", 300,0).setDuration(1000).start(); animator.ofFloat(img, "rotation", 3600,0).setDuration(1000).start(); flag=true; }
PropertyValuesHolder对象的使用
/** * 跟上面不同的是代码优化了 */ public void propteValueHolderDemo() { ImageButton img=(ImageButton) findViewById(R.id.img); PropertyValuesHolder pro1=PropertyValuesHolder.ofFloat("rotation", 0,360F); PropertyValuesHolder pro2=PropertyValuesHolder.ofFloat("x", 0,300); PropertyValuesHolder pro3=PropertyValuesHolder.ofFloat("y", 0,300); ObjectAnimator.ofPropertyValuesHolder(img,pro1,pro2,pro3).setDuration(1000).start(); }
/** * 按顺序 演示动画效果 */ public void PlaySequentiallyDemo() { ImageButton img=(ImageButton) findViewById(R.id.img); ObjectAnimator animator1= ObjectAnimator.ofFloat("img","X",0,360F); ObjectAnimator animator2= ObjectAnimator.ofFloat("img","Y",0,360F); AnimatorSet set=new AnimatorSet(); set.playSequentially(animator1,animator2); set.setDuration(1000); set.start(); }
时间: 2024-10-13 04:42:39