一、概述
今天开始百思不得姐的项目开发,顺便写几篇博客记录进度
欢迎界面的效果图
二、解决思路
一般我们欢迎界面,过渡到主页有以下几种解决方案:
1、属性动画(ObjectAnimator)
2、补间动画(TranstionAnimator,ScaleAnimator,RotateAnimator)
3、timer定时器去延时执行一个任务
4、Thread+Hanlder
我们这里采用第一种方案解决
欢迎界面LauchActivity的代码:
private ImageView mIv;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lauch);
mIv = (ImageView) findViewById(R.id.iv_lauch);
//用属性动画 ofFloat(Object target, String propertyName, float... values)
//target 是执行动画的目标控件 propertyName 属性名称 values变化值
ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(mIv,"scaleX",0.5f,1.0f);
objectAnimator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
//动画结束后跳转到主页面
Intent intent = new Intent(LauchActivity.this,MainActivity.class);
startActivity(intent);
finish();
}
});
objectAnimator.setDuration(2000);
objectAnimator.start();
// objectAnimator.addListener(new Animator.AnimatorListener() {
// @Override
// public void onAnimationStart(Animator animation) {
//
// }
//
// @Override
// public void onAnimationEnd(Animator animation) {
// //动画结束后跳转到
// Intent intent = new Intent(LauchActivity.this,MainActivity.class);
// startActivity(intent);
// }
//
// @Override
// public void onAnimationCancel(Animator animation) {
//
// }
//
// @Override
// public void onAnimationRepeat(Animator animation) {
//
// }
// });
}
}
三、分析及总结
注释的代码是复写了所有动画监听的方法,然后在动画结束跳转到主页,我们可以AnimatorListenerAdapter监听里面就只实现我们想要的onAnimationEnd方法,这也是google工程师对适配器模式的运用,在自己项目中可以经常用这个模式去写代码。
分析完毕,欢迎界面就到此,代码链接:
http://pan.baidu.com/s/1o80ZCkM
网友评论