package com.atguigu.beijingnews;
import android.animation.Animator;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.DisplayMetrics;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.AnimationSet;
import android.view.animation.RotateAnimation;
import android.view.animation.ScaleAnimation;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import com.atguigu.baselibrary.CacheUtils;
import com.atguigu.beijingnews.activity.GuideActivity;
import com.atguigu.beijingnews.activity.MainActivity;
public class WelcomeActivity extends AppCompatActivity {
private RelativeLayout activity_main;
private ImageView iv_icon;
private int screenWidth;
private int screenHeight;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//得到屏幕的宽和高
DisplayMetrics outMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(outMetrics);
screenWidth = outMetrics.widthPixels;
screenHeight = outMetrics.heightPixels;
setContentView(R.layout.activity_welcome);
activity_main = (RelativeLayout) findViewById(R.id.activity_main);
iv_icon = (ImageView) findViewById(R.id.iv_icon);
//普通动画
// setAnimation();
//使用属性动画-解决有些设备上没有动画的问题
setObjectAnimator();
}
private void setAnimation() {
//三个动画:旋转动画,渐变动画,缩放动画
RotateAnimation ra = new RotateAnimation(0, 360, RotateAnimation.RELATIVE_TO_SELF, 0.5f, RotateAnimation.RELATIVE_TO_SELF, 0.5f);
ra.setDuration(2000);//设置持续时间
ra.setFillAfter(true);//设置停留在旋转后的状态
AlphaAnimation aa = new AlphaAnimation(0, 1);
aa.setDuration(2000);//设置持续时间
aa.setFillAfter(true);//设置停留在旋转后的状态
//
ScaleAnimation sa = new ScaleAnimation(0, 1, 0, 1, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
sa.setDuration(2000);//设置持续时间
sa.setFillAfter(true);//设置停留在旋转后的状态
//
AnimationSet set = new AnimationSet(false);
set.addAnimation(aa);
set.addAnimation(ra);
set.addAnimation(sa);
//
// //开始播放动画
activity_main.startAnimation(set);
//
// //监听动画播放完成
set.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
// Toast.makeText(WelcomeActivity.this, "动画播放完成", Toast.LENGTH_SHORT).show();
boolean startMain = CacheUtils.getBoolean(WelcomeActivity.this, "start_main");
Intent intent = null;
if (startMain) {
//进入主页面
intent = new Intent(WelcomeActivity.this, MainActivity.class);
} else {
intent = new Intent(WelcomeActivity.this, GuideActivity.class);
}
startActivity(intent);
finish();
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
}
private void setObjectAnimator() {
ObjectAnimator animator = ObjectAnimator.ofFloat(activity_main,"rotation",0,360);
ObjectAnimator animator2 = ObjectAnimator.ofFloat(activity_main, "alpha", 0, 1);
//设置旋转的中心点
activity_main.setPivotX(screenWidth / 2);
activity_main.setPivotY(screenHeight / 2);
ObjectAnimator animator3 = ObjectAnimator.ofFloat(activity_main, "scaleY", 0f, 1f, 1f);
ObjectAnimator animator4 = ObjectAnimator.ofFloat(activity_main, "scaleX", 0f, 1f, 1f);
AnimatorSet animatorSet = new AnimatorSet();
animatorSet.setDuration(2000);
// animatorSet.setInterpolator(new BounceInterpolator());
//两个动画一起播放
animatorSet.playTogether(animator,animator2,animator3,animator4);
//开始播放
animatorSet.start();
///监听播放完成
animatorSet.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
}
@Override
public void onAnimationEnd(Animator animation) {
// Toast.makeText(WelcomeActivity.this, "动画播放完成", Toast.LENGTH_SHORT).show();
boolean startMain = CacheUtils.getBoolean(WelcomeActivity.this, "start_main");
Intent intent = null;
if (startMain) {
//进入主页面
intent = new Intent(WelcomeActivity.this, MainActivity.class);
} else {
intent = new Intent(WelcomeActivity.this, GuideActivity.class);
}
startActivity(intent);
finish();
}
@Override
public void onAnimationCancel(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
});
}
}