ObjectAnimator.ofFloat(Object target, String propertyName,String ... values);
通过ObjectAnimator的静态工厂方法,创建一个ObjectAnimator对象
其中共有三个参数
//这句话的意思就是传入一个ImageView对象,围绕X进行2D缩放,由原始的大小方法到原来的1.13倍!
ObjectAnimator animatorX = ObjectAnimator.ofFloat(mSplashImage, "scaleX", 1f, 1.13f);
作用就是将多个动画通过 playTogether(),playSequentially(),animSet.play().with(),defore(),after()这些方法来控制多个动画的协同工作方式,从而做到对动画播放顺序的精确控制
AnimatorSet set = new AnimatorSet();
set.setDuration(ANIMATION_DURATION).play(animatorX).with(animatorY);
set.start();
public class EntryActivity extends Activity {
private static final int ANIMATION_DURATION = 2000;
private static final float SCALE_END = 1.13F;
private static final int[] SPLASH_ARRAY = {
R.drawable.splash0,
R.drawable.splash1,
R.drawable.splash2,
R.drawable.splash3,
R.drawable.splash4,
R.drawable.splash5,
R.drawable.splash6,
R.drawable.splash7,
R.drawable.splash8,
R.drawable.splash9,
R.drawable.splash10,
R.drawable.splash11,
R.drawable.splash12,
R.drawable.splash13,
R.drawable.splash14,
R.drawable.splash15,
R.drawable.splash16,
};
private ImageView mSplashImage;
private TextView titleView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_entry);
mSplashImage = ButterKnife.findById(this, R.id.iv_entry);
titleView = ButterKnife.findById(this, R.id.tv_title);
Random r = new Random(SystemClock.elapsedRealtime());
//设置随机的图片
mSplashImage.setImageResource(SPLASH_ARRAY[r.nextInt(SPLASH_ARRAY.length)]);
animateImage();
}
private void animateImage() {
//表示从1f --> 1.13f 的变化过程
ObjectAnimator animatorX = ObjectAnimator.ofFloat(mSplashImage, "scaleX", 1f, SCALE_END);
ObjectAnimator animatorY = ObjectAnimator.ofFloat(mSplashImage, "scaleY", 1f, SCALE_END);
//表示多个动画的协同工作
AnimatorSet set = new AnimatorSet();
set.setDuration(ANIMATION_DURATION).play(animatorX).with(animatorY);
set.start();
//对动画的监听,动画结束后立马跳转到主页面上
set.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
MainActivity.start(EntryActivity.this);
EntryActivity.this.finish();
}
});
}
}