【Android】android开发之splash闪屏页的四种实现方式,启动页的实现教程。
2016-10-27 00:00
585 查看
作者:程序员小冰,GitHub主页:
https://github.com/QQ986945193
新浪微博:http://weibo.com/mcxiaobing
首先给大家看一下今天实现的效果图(其他三种都差不太多底下详细介绍):
这个启动页实现的方法是四种,两种是利用handler,其它两种是利用了动画的方式。
具体给大家贴一下源代码吧,很简单。
布局文件就一个图片,mainfest添加上我们的类就行了。
java实现代码如下:
(AndroidStudio版)github下载地址:
https://github.com/QQ986945193/XiaoBingSplashMoreMethod
https://github.com/QQ986945193
新浪微博: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】android开发之splash闪屏页的四种实现方式,启动页的实现教程。
- [Android开发] Android中实现定时器的四种方式
- Unity3D游戏开发之“重写Unity Android Splash,实现启动无黑屏”
- Android开发教程:底部Tab的两种实现方式
- Unity3D游戏开发之“重写Unity Android Splash,实现启动无黑屏
- Android开发之入门基础篇-->拨号器的四种实现方式
- Android应用程序开发教程:实现一个功能比较完善的登录对话框
- Android开发学习笔记(2):Service的简介和启动方式
- Android开发 实现一般应用常有的 首次启动 展示引导图功能
- Android四种存储方式 sharedpreference,file,SQlite,contentprovider实现增删改查
- Protobuf实现Android Socket通讯开发教程
- Android四种存储方式 sharedpreference,file,SQlite,contentprovider实现增删改查
- Android开发:系统自动实现开机启动
- Android开发笔记--制作启动界面splash
- 【Android 开发教程】编码实现获取与修改预设信息中的值
- 【Android 开发教程】纯编码实现UI
- 【Android应用开发】-(18)静默方式实现批量安装卸载应用程序
- Android游戏开发教程之十五:如何实现异步音乐播放
- 如何在android中实现链接,下面四种方式告诉你