Android启动页白屏/黑屏问题解决
文章目录
- 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启动页白屏/黑屏问题解决相关推荐
- android启动页背景设置,Android APP启动页白(黑)屏问题及解决方法
一.引言 使用Android智能手机用户都有碰到过,当一个APP启动时,有的APP启动界面会首先展示一个白屏或者黑屏,然后再进入欢迎页,稍作停留最后进入APP主页. 这个白屏或者黑屏的问题真的很影响体 ...
- Android启动页白屏背景图拉伸的解决方案
Android启动页白屏&背景图拉伸的解决方案 1.前言 2.问题点 3.代码及说明 4.注意点 1.前言 新项目的闪屏页面用到一张大图,UI那边要求那张图片填充全屏,而且不能压缩或拉伸. 然 ...
- android 加载图片 白屏,android启动页白屏和图片自适应问题
android启动页白屏和图片自适应问题,自适应官方给的说法也只是做多套图去适配不同的分辨率,本文通过几个设置几行代码即可解决启动页短暂白屏和自适应问题. 网上的说法是通过启动页代码裁切图片或者在Im ...
- Android 启动页白屏 快速解决
启动页有一个白屏 怎么解决 <style name="ThemeSplash" parent="Theme.AppCompat.Light.NoActionBar& ...
- android广告页白屏_Android 启动页白屏解决方案
当我们打开app的时候是不是会有一瞬间的白屏然后再进入主活动,虽然这并不会造成什么不好的后果,但是感觉用户体验就不是很好.像网易云音乐等等,打开一瞬间就显示了他们的loge,无缝衔接,没有白屏,怎么 ...
- 关于android app启动页白屏黑屏和华为手机启动页图片跳跃闪屏的问题
1.产生原因 关于点击app图标出现白屏和黑屏的产生原因,首先要说的就是app的启动模式:冷启动(cold start),暖启动(warm start),热启动(lukewarm start). ...
- Android系统(121)---Android启动页黑屏及最优解决方案
Android启动页黑屏及最优解决方案 前言 相信做过Android的朋友都知道,当一个APP启动时,界面会首先展示一个白屏或者黑屏,然后再进入欢迎页,稍作停留最后进入APP主页.那么这个黑屏或者白屏 ...
- Android 系统(119)---Android启动页黑屏及最优解决方案
Android启动页黑屏及最优解决方案 前言 相信做过Android的朋友都知道,当一个APP启动时,界面会首先展示一个白屏或者黑屏,然后再进入欢迎页,稍作停留最后进入APP主页.那么这个黑屏或者白屏 ...
- android最优化启动画面,Android启动页黑屏及最优解决方案
原标题:Android启动页黑屏及最优解决方案 作者:拉丁吴 链接:https://juejin.im/post/58ad90518ac2472a2ad9b684 前言 相信做过Android的朋友都 ...
最新文章
- SQL优化基础 使用索引(一个小例子)
- Codeforces Round #735 (Div. 2)(A-D)没有B
- mysql将时间戳转化为天数_mysql 将时间戳直接转换成日期时间
- 2021年跨专业/转行业学IT,还有前途吗?
- 编写可执行程序,其它程序调用,并返回数据,C#
- linux英文考试题,linux考试试题附答案
- MyBatis【钢镚核恒】
- centos6.5重置密码
- 用户细分概念辨析——用户分群与用户分层
- Nebula3 SDK (Apr 2009)更新内容
- linux下解决QT不能使用搜狗输入法
- 湘潭大学c语言大作业难过吗,C语言程序设计参考答案(湘大出版社)
- Magento二次开发哪家好呢?
- ZOHO企业邮箱教程(试用30/15天)
- 启动U盘安装linux系统
- ar虚拟现实电子沙盘软件制作
- xp桌面上的计算机管理,如何解决WinXP系统开机桌面变白显示恢复Active Desktop的问题?...
- 汽车材料QC/T 944-2013ELV中多溴联苯(PBBs)和多溴二苯醚(PBDEs)的检测
- SpringCloud微服务-----skywalking链路追踪
- grafana bar gauge使用问题
热门文章
- php 元素 拖拉,Draggable Elements 元素拖拽功能实现代码_javascript技巧
- bat 命令返回结果_Windows 用户需要知道的 CMD 常用命令总结
- linux下静态编译mupdf,在Qt中调用Mupdf库进行pdf显示
- 网站服务器无法启动w3cvc,w3c标准网站
- Android 状态栏, 标题栏, 导航栏,系统栏,应用栏的区别和解释
- 微信PC端无法拖入文件
- RTL8367s调试
- 《系统工程理论与实践》模板报错 ! Undefined control sequence. 跪求大佬指点
- [基础]-哥氏定理和科里奥利力
- MAC如何快速查看软件安装路径