文章目录

  • 1. 前言
  • 2. 解决
    • 2.1 纯色背景
    • 2.2 设置背景图片
  • 3. 最终方案

1. 前言

记得之前记录过这个问题怎么解决,但是在自己的这个博客中确实没有找到。所以还是继续记录一笔。为了更加直观的说明这个问题,这里我随意创建了一个应用,然后做一个录屏:


在上面的动态图片中,可以看到打开系统自带、自己创建应用均有启动的黑屏显现。但是自己在平时实际中使用App的过程中,却没有看见过这个显现,取而代之的是一个启动页面。这种效果更加友好,所以这里也来记录下怎么解决这个问题。

2. 解决

解决方式其实就是自定义主题样式。大致存在两种方式来解决这个问题,第一个是直接设置背景色,第二个是设置背景图片。

2.1 纯色背景

对于设置颜色,我们需要同时设置几个部分的颜色,分别包括最顶部往下的状态栏、ActionBar、主页的三个颜色。具体的对应关系如下:

注:上图来自Android如何设置顶部状态栏颜色(主题)

所以解决方案为隐藏ActionBar,并设置状态栏statusBarColor的颜色和windowBackground的颜色一致即可。那么可以为启动的Activity来设置主题,即:android:theme="@style/WelcomeTheme"。对于WelcomeTheme的主题,定义在themes.xml文件中:

<style name="WelcomeTheme" parent="Theme.AppCompat.NoActionBar"><!--设置背景颜色--><item name="android:windowBackground">@color/full_screen</item><!--设置没有ActionBar--><item name="android:windowNoTitle">true</item><!--设置顶部状态栏颜色--><item name="android:statusBarColor" tools:targetApi="l">@color/full_screen</item>
</style>

对于full_screen定义为:

<color name="full_screen">#FF369046</color>

那么这样就可以实现一个直观上的全屏效果。如下:


那么对于启动页可以设置一个应用Logo,就只需要设置一个超时跳转即可。就不会给用户一种视觉上的白/黑屏效果。

但是,其实这并不是我们所希望的效果,因为我们希望在进入后的背景色、状态栏颜色都回归到正常的App的默认主题颜色,所以我们还需要在启动MainActivity的时候进行主题的重置。即:

public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setTheme(R.style.Theme_PlayMusicDemo); //恢复原有的样式setContentView(R.layout.activity_main);}
}

最终效果:

2.2 设置背景图片

当然设置纯色背景可以实现效果,但是在实际的App中,都是设置一个本应用的Logo,也就是设置的是一张图片背景。直接设置图片即可:

<item name="android:windowBackground">@drawable/aaa</item>

但是,其实感觉QQ的启动应该是在背景设置为白色,进入后的Activity这个页面设置为Logo页面。因为我在测试中发现如果就考虑修改白屏/黑屏的部分,跳转的太快了,而实际上的App的停留时间在2-3秒钟。所以如果需要还需要自己去尝试看看该如何实现。

3. 最终方案

  • 将白屏/黑屏效果部分替换为纯色背景;
  • 将启动的Activity设置为欢迎的Logo,并启动一个超时Handler来启动主页。

对于第一个这里不再给出,对于超时的Handler来启动另一个Activity这里可以给出示例代码:

// 3秒钟后跳转
new Handler(new Handler.Callback() {@Overridepublic boolean handleMessage(@NonNull Message message) {startActivity(new Intent(getApplicationContext(), XXXActivity.class));finish();return false;}
}).sendEmptyMessageDelayed(0, 3000);

Thanks

  • Android如何设置顶部状态栏颜色(主题)
  • 页面延迟跳转Handler实现

Android启动页白屏/黑屏问题解决相关推荐

  1. android启动页背景设置,Android APP启动页白(黑)屏问题及解决方法

    一.引言 使用Android智能手机用户都有碰到过,当一个APP启动时,有的APP启动界面会首先展示一个白屏或者黑屏,然后再进入欢迎页,稍作停留最后进入APP主页. 这个白屏或者黑屏的问题真的很影响体 ...

  2. Android启动页白屏背景图拉伸的解决方案

    Android启动页白屏&背景图拉伸的解决方案 1.前言 2.问题点 3.代码及说明 4.注意点 1.前言 新项目的闪屏页面用到一张大图,UI那边要求那张图片填充全屏,而且不能压缩或拉伸. 然 ...

  3. android 加载图片 白屏,android启动页白屏和图片自适应问题

    android启动页白屏和图片自适应问题,自适应官方给的说法也只是做多套图去适配不同的分辨率,本文通过几个设置几行代码即可解决启动页短暂白屏和自适应问题. 网上的说法是通过启动页代码裁切图片或者在Im ...

  4. Android 启动页白屏 快速解决

    启动页有一个白屏 怎么解决 <style name="ThemeSplash" parent="Theme.AppCompat.Light.NoActionBar& ...

  5. android广告页白屏_Android 启动页白屏解决方案

    当我们打开app的时候是不是会有一瞬间的白屏然后再进入主活动,虽然这并不会造成什么不好的后果,但是感觉用户体验就不是很好.像网易云音乐等等,打开一瞬间就显示了他们的loge,无缝衔接,没有白屏,怎么 ...

  6. 关于android app启动页白屏黑屏和华为手机启动页图片跳跃闪屏的问题

    1.产生原因    关于点击app图标出现白屏和黑屏的产生原因,首先要说的就是app的启动模式:冷启动(cold start),暖启动(warm start),热启动(lukewarm start). ...

  7. Android系统(121)---Android启动页黑屏及最优解决方案

    Android启动页黑屏及最优解决方案 前言 相信做过Android的朋友都知道,当一个APP启动时,界面会首先展示一个白屏或者黑屏,然后再进入欢迎页,稍作停留最后进入APP主页.那么这个黑屏或者白屏 ...

  8. Android 系统(119)---Android启动页黑屏及最优解决方案

    Android启动页黑屏及最优解决方案 前言 相信做过Android的朋友都知道,当一个APP启动时,界面会首先展示一个白屏或者黑屏,然后再进入欢迎页,稍作停留最后进入APP主页.那么这个黑屏或者白屏 ...

  9. android最优化启动画面,Android启动页黑屏及最优解决方案

    原标题:Android启动页黑屏及最优解决方案 作者:拉丁吴 链接:https://juejin.im/post/58ad90518ac2472a2ad9b684 前言 相信做过Android的朋友都 ...

最新文章

  1. SQL优化基础 使用索引(一个小例子)
  2. Codeforces Round #735 (Div. 2)(A-D)没有B
  3. mysql将时间戳转化为天数_mysql 将时间戳直接转换成日期时间
  4. 2021年跨专业/转行业学IT,还有前途吗?
  5. 编写可执行程序,其它程序调用,并返回数据,C#
  6. linux英文考试题,linux考试试题附答案
  7. MyBatis【钢镚核恒】
  8. centos6.5重置密码
  9. 用户细分概念辨析——用户分群与用户分层
  10. Nebula3 SDK (Apr 2009)更新内容
  11. linux下解决QT不能使用搜狗输入法
  12. 湘潭大学c语言大作业难过吗,C语言程序设计参考答案(湘大出版社)
  13. Magento二次开发哪家好呢?
  14. ZOHO企业邮箱教程(试用30/15天)
  15. 启动U盘安装linux系统
  16. ar虚拟现实电子沙盘软件制作
  17. xp桌面上的计算机管理,如何解决WinXP系统开机桌面变白显示恢复Active Desktop的问题?...
  18. 汽车材料QC/T 944-2013ELV中多溴联苯(PBBs)和多溴二苯醚(PBDEs)的检测
  19. SpringCloud微服务-----skywalking链路追踪
  20. grafana bar gauge使用问题

热门文章

  1. php 元素 拖拉,Draggable Elements 元素拖拽功能实现代码_javascript技巧
  2. bat 命令返回结果_Windows 用户需要知道的 CMD 常用命令总结
  3. linux下静态编译mupdf,在Qt中调用Mupdf库进行pdf显示
  4. 网站服务器无法启动w3cvc,w3c标准网站
  5. Android 状态栏, 标题栏, 导航栏,系统栏,应用栏的区别和解释
  6. 微信PC端无法拖入文件
  7. RTL8367s调试
  8. 《系统工程理论与实践》模板报错 ! Undefined control sequence. 跪求大佬指点
  9. [基础]-哥氏定理和科里奥利力
  10. MAC如何快速查看软件安装路径