ObjectAnimator属性动画示例代码
import android.animation.AnimatorSet; import android.animation.ObjectAnimator; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageView; import android.widget.Toast; public class MainActivity extends Activity { private ImageView iv; private ObjectAnimator a; private ObjectAnimator t; private ObjectAnimator r; private ObjectAnimator s; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); iv = (ImageView) findViewById(R.id.iv); iv.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this, "点我", 0).show(); } }); } /** * 透明度 */ public void alpha(View v) { a = ObjectAnimator.ofFloat(iv, "alpha", 0, 1, 0.5f, 0.1f, 0.8f); // 设置时间 a.setDuration(1000); // 设置动画的重复次数 a.setRepeatCount(1); a.start(); } /** * 位移动画 */ public void translate(View view) { /** * target :座动画的目标控件 propertyName :动画的属性名 values :属性值 */ // ObjectAnimator t = ObjectAnimator.ofFloat(iv, "translationX", // 0,100,20,80,10,200); t = ObjectAnimator.ofFloat(iv, "translationY", 0, 100, 20, 80, 10, -50); // 设置时间 t.setDuration(1000); // 设置动画的重复次数 t.setRepeatCount(1); // t.setRepeatMode(ObjectAnimator.REVERSE); // 开始播放动画 t.start(); } /** * 旋转动画 */ public void rotate(View view) { // ObjectAnimator r = ObjectAnimator.ofFloat(iv, "rotation", 0, 45, 270, // ObjectAnimator r = ObjectAnimator.ofFloat(iv, "rotationX", 0, 45, // 270,360, 100); r = ObjectAnimator.ofFloat(iv, "rotationY", 0, 45, 270, 360, 100); // 设置时间 r.setDuration(1000); // 设置动画的重复次数 r.setRepeatCount(1); // t.setRepeatMode(ObjectAnimator.REVERSE); // 开始播放动画 r.start(); } /** * 缩放 */ public void scale(View view) { // ObjectAnimator s = ObjectAnimator.ofFloat(iv, "scaleX",10, 1, 0, 5,1); s = ObjectAnimator.ofFloat(iv, "scaleY",5, 1, 0, 5,1); // 设置时间 s.setDuration(2000); // 设置动画的重复次数 s.setRepeatCount(1); // t.setRepeatMode(ObjectAnimator.REVERSE); // 开始播放动画 s.start(); } /** * 动画的合集 */ public void set(View v) { AnimatorSet set = new AnimatorSet(); //添加要播放的动画,一起装x一起飞 // set.playTogether(a,t,r,s); //一个装x一个飞 set.playSequentially(a,t,r,s); //设置目标 set.setTarget(iv); //开始播放动画 set.start(); } }
最后,关注【码上加油站】微信公众号后,有疑惑有问题想加油的小伙伴可以码上加入社群,让我们一起码上加油吧!!!