首先,你要写一个图片,然后find到图片的id。(像以下代码一样)。
<ImageView
android:id="@+id/iv_splash"
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@drawable/i"
android:layout_gravity="center"
/>
然后开始切入正题,为了使动画效果美观,需要隐藏标题栏。然后获取屏幕高度进行动画展示。
DisplayMetrics displayMetrics = getResources().getDisplayMetrics();//这个好像是可以获取屏幕高度
int height = displayMetrics.heightPixels;//获取屏幕高度
//缩放---ofFloat用4个参数的ofFloat
ObjectAnimator objectAnimator1 = ObjectAnimator.ofFloat(iv_splash, "scaleX", 2, 1);
//渐变
ObjectAnimator objectAnimator2 = ObjectAnimator.ofFloat(iv_splash, "alpha", 0, 1);
//旋转
ObjectAnimator objectAnimator3 = ObjectAnimator.ofFloat(iv_splash, "rotation", 0, 360);
//移动
ObjectAnimator objectAnimator4 = ObjectAnimator.ofFloat(iv_splash, "translationY", 0, height / 2 - iv_splash.getHeight() / 2);
//组合
AnimatorSet set = new AnimatorSet();
/**
* 动画执行
*/
set.play(objectAnimator1).with(objectAnimator2).with(objectAnimator3).with(objectAnimator4);
set.setDuration(3000);
set.start();
最后需要给属性动画设置监听-----执行动画播放完毕之后的页面跳转。
set.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
}
//动画执行完后跳转到主activity
@Override
public void onAnimationEnd(Animator animation) {
Intent intent = new Intent(MainActivity.this,Main2Activity.class);
startActivity(intent);
}
@Override
public void onAnimationCancel(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
});