ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

一起Talk Android吧(第三百一十一回:创建程序启动界面Splash Screen二)

2021-09-30 23:33:55  阅读:282  来源: 互联网

标签:ActionBar 界面 创建 Screen 程序 Splash Activity Android 代码


各位看官们,大家好,上一回中咱们说的是Android中创建程序启动界面的例子,这一回咱们继续说该例子。闲话休提,言归正转。让我们一起Talk Android吧!


看官们,上一章回中我们通过修改程序的主题来创建程序启动界面,本章回中我们再介绍一种创建程序启动界面的方法,具体步骤如下:

  • 1.创建一个EmptyActivity的工程,此工程中只有一个主界面:MainActivity;
  • 2.创建一个Fullscreen Activity,同时将其设置为Launcher Activity,具体操作为:在AndroidManifest.xml文件中把MainActivity和FullscreenActivity互换;

注意这里使用了AST中自带的Activity模板,具体操作如下:File ->New -> Activity -> Fullscreen Activity,此操作是在AST 4.0版本上进行的,版本不同操作细节上可能会有差别。

  • 3.在Fullscreen Activity的代码中启动一个线程,让该线程暂停1s,然后跳转到程序主界面中,上一章回的例子中介绍过,这里不再列出代码。


保存代码并且运行程序就可以看到一个覆盖整个屏幕并且没有ActionBar的界面,我们在这里就不演示程序运行结果了,大家可以自己动手实践。


我们在上一章回中通过配置主题去掉了Activity上的ActionBar,在这里使用的是AST提供的模板去掉了ActionBar,其中的原理是什么?是不是也是使用了主题?我们带着好奇心查看主题的代码后并没有在主题中发现去掉ActionBar的代码,那么只能是在代码中去掉的。我们跟着这个思路打开了FullscreenActivity的java代码,通过查找和分析,发现它使用了一个叫hide()的方法来去掉ActionBar的,该方法的核心代码如下:

        ActionBar actionBar = getSupportActionBar();
        if (actionBar != null) {
            actionBar.hide();
        }


代码中首先获取了ActionBar,然后通过ActionBar的hide()方法隐藏了ActionBar.因此可见AST的模板是通过Java代码去掉ActionBar的。


对比一下这两种方法就会发现,它们在创建程序启动界面时都去掉了ActionBar,那么这个ActionBar是如何添加到程序中的呢?其实早期的Activity中是没有ActionBar的,它是在AppCompatActivity中引入的,当我们创建工程时MainActivity默认继承AppCompatActivity,因此在界面上会显示ActionBar.如果我们让MainActivity继承Activity时,界面上就不会显示ActionBar。虽然这样也可以实现全面覆盖屏幕的效果,但是在实际项目中不建议这么操作,因为这会破坏程序的兼容性。

最后我们总结一下创建程序启动界面的整体思路:

  • 1.必要步骤是去掉Activity上的显示的ActionBar;方法有两种:配置主题或者通过Java代码隐藏;
  • 2.主要逻辑是让当前进程暂停一段时间然后再跳转到主程序界面上;


各位看官,关于Android中创建程序启动界面的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!

标签:ActionBar,界面,创建,Screen,程序,Splash,Activity,Android,代码
来源: https://blog.csdn.net/talk_8/article/details/120573638

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有