Android开发笔记之无锡安卓开发:Splash的完成详解

2021-11-14 00:16:10 无锡雷霆

什么是Splash
Splash也就是运用程序启动之前先启动一个画面,上面简略的引见运用程序的厂商,厂商的LOGO,称号和版本等信息,多为一张图片,显示几秒钟后会主动消息,然后显示出运用程序的主体页面。在PC上,很常见各种平台的运用程序都会有,多半是一张图片显示在屏幕地方,如Microsoft Office系列,或许GIMP等。在各种游戏中Splash是最常见的,几乎一切的游戏末尾都会有一张全屏的图片,上面通常都显示厂商的LOGO,游戏的称号等。在手机平板等移动设施上,类似PC的Splash很少,最少对于Android和iOS来讲原生的运用程序都没有这种Splash,然而不知从何时起,这种Splash末尾在第三方运用中盛行起来,几乎一切的第三方运用程序都有启动Splash。这些Splash的特点是占满整个屏幕,上面LOGO,厂商的名字,运用的名字版本等,大约3到5秒后,Splash主动隐没,运用主页面显示进去。很多运用在Splash页面也显示加载过程。
下面谈谈在Android中如何完成Splash以及它的优缺陷:
利用Activity作为Splash
这能够也是最常用的模式,方法就是用一个Activity,给它设置一个背景,或许要显示的信息(厂商,LOGO,名字和版本),让它显示几秒种,然后finish()掉,并启动运用主体Activity。

复制代码 代码如下:


       
           
               
               
           
       


复制代码 代码如下:


public class SplashActivity extends Activity {
    private Handler mMainHandler = new Handler() {
 @Override
 public void handleMessage(Message msg) {
     Intent intent = new Intent(Intent.ACTION_MAIN);
     intent.setClass(getApplication(), NotTomorrowActivity.class);
     intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
     startActivity(intent);
     // overridePendingTransition must be called AFTER finish() or startActivity, or it won't work.
     overridePendingTransition(R.anim.activity_in, R.anim.splash_out);
 }
    };

    @Override
    public void onCreate(Bundle icicle) {
 super.onCreate(icicle);
 getWindow().setBackgroundDrawableResource(R.drawable.kg);
 mMainHandler.sendEmptyMessageDelayed(0, 5000);
    }

    // much easier to handle key events
    @Override
    public void onBackPressed() {
    }
}



Android开发笔记之无锡安卓开发:Splash的实现详解



利用Activity的劣势在于:
容易控制KEY事情
由于在显示Splash的时分,是不应该呼应事情的,比如触摸事情,或许BACK或许MENU,由于这是一个单独的Activity,社区团购小程序,所以你可能很容易禁掉这些用户事情,而不必担忧影响其余逻辑,或许担心未及时把它们重新启用。
容易定制
由于它是一个单独的Activity,所以你可能把它设置成全屏的,或许没有TitleBar的,或许其余什么样式与风格。在实践利用中,几乎一切的Splash都设置成了全屏。由于它是单独的Activity,所以即使你的运用不是全屏的,也没无关系,由于只把SplashActivity设置成了全屏不会对其余Activity产生影响。
逻辑与主体逻辑来到,容易维护
如后面二点,由于它是一个单独的Activity,一切的Splash相干的逻辑都在其中,而与运用主体的Activity是来到的,所以Splash中的逻辑不会影响到其余的Activity,这也更容易修正和维护,由于不会绞在一同相互影响。
利用Activity的惟一缺陷就是它无奈应用Splash显示的工夫里做数据加载。由于它是一个单独的Activity,无奈控制其余的Activity,并且这时其余Activity还未创建。
利用ViewSwitcher作为Splash
这个也可能用作Splash。ViewSwitcher是一个ViewGroup,它有二个子View,每次只能显示其中一个。次要做法就是,Activity的RootView设置为ViewSwitcher,把一个规划(如ImageView)作为Splash作为ViewSwitcher的第一个子View;再把Activity的主体规划作为第二个子View;当Activity启动时,先显示作为Splash的ImageView,过几秒后再显示主体规划。理想上ViewSwitcher通常用在Activity需求加载数据,先显示一个进度条,当有数据时再显示真正的规划。
利用ViewSwitcher的劣势
利用ViewSwitcher的劣势就在于,无锡最专业app开发,你可能应用Splash的工夫来停止数据的加载,这样用户就不必在期待了Splash之后,再期待数据加载。

复制代码 代码如下:




   
 

     android:orientation="vertical"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent" >
  
    
  

Android,开发笔,记之,Splash,实现,详解