package com.music.xiangdamuxic; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.animation.AlphaAnimation; import com.hanks.htextview.scale.ScaleTextView; import com.jaeger.library.StatusBarUtil; import com.music.xiangdamuxic.utils.Constant; import com.music.xiangdamuxic.utils.Utils; import java.util.Date; import java.util.Timer; import java.util.TimerTask; public class WelcomePage extends SuperActivity { /** * 记录问候语播放的位置 */ int index = 0; private Timer timer; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_welcomepage); //状态栏透明化 StatusBarUtil.setTransparent(WelcomePage.this); //获取开始时间 Date date = new Date(); final long startTime = date.getTime(); //配置页面渐变动画 initAnimation(); //设置动态字段 initScaleTextView(); //获取结束时间 final long endTime = date.getTime(); //进行时间计算,证页面的展示时间一定 calculateShowTime(startTime, endTime); } /** * 保证页面的展示时间一定(5S), * 使用了sleep,得在子线程进行操作,防止主线程页面卡顿。 * 时间计算为进入此函数之前的时间戳减去页面进入的时间戳,再用5减去之前计算的差,为子线程睡眠时间。 * 苏醒后跳转新页面, * 再延迟3S销毁该activity。 * * @param startTime 刚进入页面的时间戳 * @param endTime 进入此函数之前的时间戳 */ private void calculateShowTime(final long startTime, final long endTime) { //开启子线程 new Thread(new Runnable() { @Override public void run() { try { //子线程休眠未满5s的时间 Thread.sleep((5000) - (endTime - startTime)); //意图初始 Intent intent =null; //判断是否已经登录,如果已经登录,则跳转主页 //否则跳转登录界面 if(!Utils.getBool(WelcomePage.this,Constant.isLogOn,false)){ //未登录 intent = new Intent(WelcomePage.this, LoginActivity.class); }else{ //已登录 intent = new Intent(WelcomePage.this, MainActivity.class); } //取消动态字体任务 timer.cancel(); //开启意图 startActivity(intent); //跳转动画(向左滑动效果) overridePendingTransition(R.anim.next_in, R.anim.next_out); //延迟销毁WelcomePage Thread.sleep(3000); WelcomePage.this.finish(); } catch (InterruptedException e) { } } }).start(); } /** * 初始化动态字段 * 1.5S更换一次 */ private void initScaleTextView() { //获取动态字体控件 final ScaleTextView scaleTextView = findViewById(R.id.wlecomePage_scaleTextView); //设置任务内容 TimerTask timerTask = new TimerTask() { @Override public void run() { //定时变换字,字体存于Constant常量池中 scaleTextView.animateText(Constant.GREETINGSENTENCES[(index++) % Constant.GREETINGSENTENCES.length]); } }; //开启任务,1.5S更换 timer = new Timer(); timer.schedule(timerTask, 0, 1500); } /** * 配置页面渐变动画 * 由完全透明至完全不透明,渐变时间为3S */ private void initAnimation() { //1.0 不透明,0.0完全透明 //配置渐变动画 AlphaAnimation ac = new AlphaAnimation(0.0f, 1.0f); //设置动画时间 ac.setDuration(3000); //给整个Welcome界面设置渐变动画 findViewById(R.id.wlecomePage_relativeLayout).startAnimation(ac); } }