[置顶] 【Android】android开发之splash闪屏页的四种实现方式,启动页的实现教程。
2016-03-14 16:31
816 查看
作者:程序员小冰,GitHub主页:https://github.com/QQ986945193
新浪微博:http://weibo.com/mcxiaobing
首先给大家看一下今天实现的效果图(其他三种都差不太多底下详细介绍):
这个启动页实现的方法是四种,两种是利用handler,其它两种是利用了动画的方式。
具体给大家贴一下源代码吧,很简单。
布局文件就一个图片,mainfest添加上我们的类就行了。
java实现代码如下:
https://github.com/QQ986945193/XiaoBingSplashMoreMethod
新浪微博:http://weibo.com/mcxiaobing
首先给大家看一下今天实现的效果图(其他三种都差不太多底下详细介绍):
这个启动页实现的方法是四种,两种是利用handler,其它两种是利用了动画的方式。
具体给大家贴一下源代码吧,很简单。
布局文件就一个图片,mainfest添加上我们的类就行了。
java实现代码如下:
package xiaobingsplashmoremethod.qq986945193.xiaobingsplashmoremethod.xiaobingsplashmoremethod; import android.annotation.SuppressLint; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; 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.LinearLayout; /** * @author :程序员小冰 * @新浪微博 :http://weibo.com/mcxiaobing * @GitHub:https://github.com/QQ986945193 * @CSDN博客: http://blog.csdn.net/qq_21376985 * @交流Qq :986945193 * 类名:splash闪屏页的四种实现方式 */ public class SplashActivity extends Activity { private LinearLayout ll_splash; private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case 1: startMainActivity(); break; case 2: startMainActivity(); break; } } }; @SuppressLint("WrongViewCast") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash); ll_splash = (LinearLayout) findViewById(R.id.ll_splash); /** * 第一种方法,利用handler自带的sendEmptyMessageDelayed()方法。 */ mHandler.sendEmptyMessageDelayed(1, 2000); /** * 第二种方法,其实实现原理和第一种是一样的, */ // // Message message = new Message(); // message.what = 2; // mHandler.sendMessageDelayed(message, 2000); /** * 第三种方法,利用动画实现 */ // startAdimThree(); /** * 第四种方法,利用动画实现 */ // StartAniFour(); } private void StartAniFour() { AlphaAnimation start = new AlphaAnimation(0.0f, 1.0f); start.setDuration(1000); // findViewById(R.id.splash).startAnimation(start); start.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { startMainActivity(); } @Override public void onAnimationRepeat(Animation animation) { } }); ll_splash.startAnimation(start); } /** * 开启动画 */ private void startAdimThree() { // 动画集合 AnimationSet set = new AnimationSet(false); // 旋转动画 RotateAnimation rotateAnimation = new RotateAnimation(180, 180, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); rotateAnimation.setDuration(2000);// 设置动画时间 rotateAnimation.setFillAfter(true);// 保持动画状态 // 缩放动画 ScaleAnimation scaleAnimation = new ScaleAnimation(0, 1, 0, 1, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); scaleAnimation.setDuration(2000);// 设置动画时间 scaleAnimation.setFillAfter(true);// 保持动画状态 // 渐变动画 AlphaAnimation alphaAnimation = new AlphaAnimation(0, 1); alphaAnimation.setDuration(2000); alphaAnimation.setFillAfter(true);// 保持动画状态 // 添加动画 set.addAnimation(rotateAnimation); set.addAnimation(scaleAnimation); set.addAnimation(alphaAnimation); /* * 设置动画的监听事件,当动画运行完成后,启动新的activity */ set.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { // TODO Auto-generated method stub } @Override public void onAnimationRepeat(Animation animation) { // TODO Auto-generated method stub } @Override public void onAnimationEnd(Animation animation) { // TODO Auto-generated method stub startMainActivity(); } }); ll_splash.startAnimation(set); } /** * 跳转到主界面 */ private void startMainActivity() { startActivity(new Intent(SplashActivity.this, MainActivity.class)); finish(); } @Override protected void onDestroy() { super.onDestroy(); // mHandler.removeMessages(1); // mHandler.removeMessages(2); } }(AndroidStudio版)github下载地址:
https://github.com/QQ986945193/XiaoBingSplashMoreMethod
相关文章推荐
- Android.mk学习笔记
- android 杀不死服务 解析
- Android初试--常用的隐式意图
- Android SettingProvider详解
- Android入门3:从Toolbar到Material Design
- android多线程断点下载
- 初识Android之Activity和Intent
- android studio 模拟器的选择
- Android ScrollView、ListView冲突问题
- Android实现中文按拼音排序方法
- Android menu.add()的使用说明
- 搭建一个 Android, iOS 的QT环境
- Android开发之异步消息处理机制
- Android进程与线程基本知识
- [转]AndroidStudio导出jar包
- Android实现伸缩弹力分布菜单效果
- Kotlin For Android初体验——配置Kotlin
- Android实现推送方式解决方案
- android 三级联动,二级联动,省市县选择器
- Android常用权限