很多应用都会有一个启动界面。欢迎画面慢慢隐现,然后慢慢消隐。

我的方式是使用两个Activity,程序启动时候load第一张Activity,然后由tick触发N秒钟后startActivity另外一张Activity。

splash.java

package com.yuyidong.second;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.Window;
import android.view.WindowManager;public class Splash extends Activity{@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO 自动生成的方法存根super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.splash);getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);new Handler().postDelayed(new Runnable(){   // 为了减少代码使用匿名Handler创建一个延时的调用public void run() {   Intent i = new Intent(Splash.this, MainActivity.class);    //通过Intent打开最终真正的主界面Main这个ActivitySplash.this.startActivity(i);    //启动Main界面Splash.this.finish();    //关闭自己这个开场屏
                        }   }, 5000);   //5秒
    }}

splash.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><ImageView android:layout_width="wrap_content"android:layout_height="wrap_content" android:src="@drawable/ic_launcher"android:layout_gravity="center"android:contentDescription="Hello"/><TextViewandroid:id="@+id/info"android:layout_width="fill_parent"android:layout_height="wrap_content"android:gravity="center"android:text="This is a splash!!"/>
</LinearLayout>

将splash设置为一点开程序就先显示的activity。AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.yuyidong.second"android:versionCode="1"android:versionName="1.0" ><uses-sdkandroid:minSdkVersion="11"android:targetSdkVersion="16" /><applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme" ><activity android:name="Splash"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><activityandroid:name="com.yuyidong.second.MainActivity"android:label="@string/app_name" >            </activity>       </application>
</manifest>

使用Activity的优势在于:

  1. 容易控制KEY事件

    因为在显示Splash的时候,是不应该响应事件的,比如触摸事件,或者BACK或者MENU,因为这是一个单独的Activity,所以你可以很容易禁掉这些用户事件,而不必担忧影响其他逻辑,或者担心未及时把它们重新启用。

  2. 容易定制

    因为它是一个单独的Activity,所以你可以把它设置成全屏的,或者没有TitleBar的,或者其他什么样式与风格。在实际使用中,几乎所有的Splash都设置成了全屏。因为它是单独的Activity,所以即使你的应用不是全屏的,也没有关系,因为只把SplashActivity设置成了全屏不会对其他Activity产生影响。

  3. 逻辑与主体逻辑分开,容易维护

    如前面二点,因为它是一个单独的Activity,所有的Splash相关的逻辑都在其中,而与应用主体的Activity是分开的,所以Splash中的逻辑不会影响到其他的Activity,这也更容易修改和维护,因为不会绞在一起相互影响。

使用Activity的唯一缺点就是它无法利用Splash显示的时间里做数据加载。因为它是一个单独的Activity,无法控制其他的Activity,并且这时其他Activity还未创建。

转载请注明出处:http://www.cnblogs.com/yydcdut/p/3688419.html

Android -- 程序启动画面 Splash相关推荐

  1. VC四种程序启动画面的制作方法

    使用启动画面一是可以减少等待程序加载过程中的枯燥感(尤其是一些大型程序):二是可以用来显示软件名称和版权等提示信息.怎样使用VC++制作应用程序的启动画面呢?本文提供四种方法,前三种适用于基于文档的应 ...

  2. Qt程序启动画面QSplashScreen类

    Qt程序启动画面QSplashScreen类 当程序初始化工作比较多,程序可能启动较长时间后,窗口才会显示出来,用户没准会抱怨程序响应的慢.为了改善用户体验,最好在程序初始化这段时间显示logo,或者 ...

  3. QT5.9学习笔记之——程序启动画面

    多数大型应用程序启动时都会在程序完全启动前显示一个启动画面,在程序完全启动后消失.程序启动画面可以显示相关产品的一些信息,使用户在等待程序启动的同了解相关产品的功能,这也是一个宣传的方式.Qt中提供的 ...

  4. Qt程序启动画面播放(gif与swf两种动画格式)

    学习Qt有一段时间了,发现一个小问题,网上关于Qt的资料或者总结性的学习及应用文章有点少. 比如,Qt完整的API,程序运行之前的启动画面如何按理想效果播放等,每次想在项目中添加一些应用的时候,总是找 ...

  5. Android 程序启动界面Demo

    2019独角兽企业重金招聘Python工程师标准>>> Android 程序启动界面Demo,动态的呢 转载:http://www.adobex.com/android/source ...

  6. 进阶~Qt程序启动画面

    今天又把教程视频看了一遍,这次学的是程序启动画面设置方法,以下是源码: #include"mainwindow.h" #include #include"QPixmap& ...

  7. 进阶~Qt程序启动画面_vortex_新浪博客

    今天又把教程视频看了一遍,这次学的是程序启动画面设置方法,以下是源码: #include"mainwindow.h" #include #include"QPixmap& ...

  8. QT程序启动画面gif动画有静止背景的解决方法

    最近在做QT的程序启动画面的动画,用的是gif的动图.但是有个问题,就是总有一帧在背景那是静止的,也就是说动图叠上静止图上.如下图所示的齿轮所示. 左边的齿轮背后有个静止的齿轮,一直会在那,右边这个才 ...

  9. Android创建启动画面

    每一个Android应用启动之后都会出现一个Splash启动界面,显示产品的LOGO.公司的LOGO或者开发人员信息.假设应用程序启动时间比較长,那么启动界面就是一个非常好的东西,能够让用户耐心等待这 ...

最新文章

  1. 内存分配器memblock【转】
  2. Python学习笔记——文件写入和读取
  3. 飞桨PaddlePaddle升级解读 | PaddleDetection物体检测统一框架
  4. java 数组排序论文_Java 7是否对方法Arrays.Sort使用Tim Sort?
  5. ASP调用.Net dll
  6. Spring Cloud Alibaba基础教程:Sentinel Dashboard中修改规则同步到Nacos
  7. Qt文档阅读笔记-QTcpServer官方解析与实例(使用QSocket创建简单的HTTP服务器)
  8. 光流估计算法RAFT的论文和代码阅读
  9. 图解数字签名Digital Signature 和数字证书Public-key certificate
  10. MapReduce进程
  11. JQuery window、document、 body
  12. LeetCode之根据字符出现频率排序
  13. 树状数组 (数据结构)
  14. android jcenter google 镜像
  15. Mysql增删改查(CURD)
  16. burnintest激活_PassMark BurnInTest Pro v9.0.1006(拷机软件)真正注册版
  17. 跨境支付行业洗牌在即:本月底必须登记 支付机构不得再“借牌照”
  18. mysql中创建视图、索引
  19. 保险丝(熔断器)基本概述
  20. php经常致命错误怎么办,如何捕获PHP中的致命错误(Fatal Errors)

热门文章

  1. ESFramework网络通信框架 4.0 性能测试
  2. 嵌入式系统在井下煤炭井下监控系统的应用
  3. 前端面试常考知识点---js
  4. git提交忽略权限问题
  5. Linux安装—IP设置
  6. ViewStub must have a valid layoutResource
  7. Oracle Database 11.2.0.1(静默安装)
  8. lucene introduction
  9. linux fork函数浅析
  10. 自动sqlldr脚本