解决启动Android应用程序时出现白屏或者黑屏的问题

news/2025/1/3 5:38:42/

通过设置主题来防止白屏或者黑屏

一般情况下,启动页面通常是全屏的,而且会用一张图片来展示用户打开应用程序后第一眼看到的界面。在手机中点击应用程序的图标到应用程序显示完MainActivity的视图这个过程中,通常会用一到两秒的时间。在默认activity的主题下(Light or Black),这两秒屏幕就会出现白屏(Light)或者黑屏(Black)- 实际上是activity默认的主题中的android:windowBackground为白色或者黑色导致的。

1. 设置android:windowBackground属性

<style name="WelcomeContentOverlay"         parent="@android:style/Theme.NoTitleBar.Fullscreen"><item name="android:windowIsTranslucent">false</item><item name="android:windowContentOverlay">@null</item><item name="android:windowFullscreen">true</item><item name="android:windowNoTitle">true</item><item name="android:windowBackground">@drawable/welcome_launch_bg</item></style>

通过设置android:windowBackground属性,让一张图片作为窗口的背景图,使打开MainActivity第一眼看到的界面是一张图片而不是白屏或者黑屏。设置这个属性来显示一张背景图还有一个效果就是启动应用程序会感觉非常快,而且与加载MainActivity的contentView是异步的。

2. 设置android:windowIsTranslucent属性

   <style name="WelcomeContentOverlay" parent="@android:style/Theme.NoTitleBar.Fullscreen"><item name="android:windowIsTranslucent">true</item><item name="android:windowContentOverlay">@null</item><item name="android:windowFullscreen">true</item><item name="android:windowNoTitle">true</item><item name="android:windowBackground">@null</item></style>

通过设置android:windowIsTranslucent属性,表明该窗口是半透明的,这样也不会出现白屏或者黑屏。但是,它和MainActivity的显示是同步,如果在MainActivity启动的时候,有过多复杂的操作,就会出现在手机中点击了应用程序的图标之后,但过两秒才会打开应用程序不好的卡顿体验效果。

3. 设置android:windowDisablePreview属性

 <style name="WelcomeContentOverlay" parent="@android:style/Theme.NoTitleBar.Fullscreen"><item name="android:windowDisablePreview">true</item></style>

通过设置android:windowDisablePreview属性,禁用窗口的预览动画,
在MainActivity显示之前,系统永远不会使用窗口的主题来显示它的预览,这也保证了不会出现白屏或者黑屏。但是,与设置android:windowIsTranslucent属性一样,如果在MainActivity启动的时候,有过多复杂的操作,就会出现在手机中点击了应用程序的图标,但过两秒才会打开应用程序不好的卡顿体验效果。

最后,设置好MainActivity的主题:

<activity
    android:screenOrientation="portrait"android:name=".MainActivity"android:theme="@style/WelcomeContentOverlay"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter>
</activity>

另外:在activity中,可以通过
Drawable drawable = getWindow().getDecorView().getBackground();来获得默认的或者设置的background。

总结:一般情况下,为了让用户有更好的体验,建议设置
android:windowBackground属性来防止启动Android应用程序时出现的白屏或者黑屏。但记住为了屏幕适配,设置的这张背景图的格式应该是.9.png的。


http://www.ppmy.cn/news/214720.html

相关文章

webrtc部分手机黑屏的原因排查

解码前&#xff1a; 是webrtc 指这里 中使用了timestamp_ns作为key&#xff0c;缓存帧信息在 frame_extra_infos_ 中 解码前&#xff1a; 这个帧信息&#xff0c;在这里入frameInfo队列 解码后&#xff1a;输出的时候使用了mediacodec输出的presentationTimeUs 作为key&#x…

如何判断Android手机是否黑屏和锁屏

1. 前言 Android手机在一段时间未操作后&#xff0c;会黑屏&#xff0c;然后点亮屏幕后&#xff0c;会显示锁屏界面。在实现某些功能&#xff08;例如&#xff1a;手机QQ的手势密码锁定&#xff09;的时候&#xff0c;需要对黑屏或锁屏进行处理。 2. 解决方案 因为Android手…

显示器黑屏 有声音

小编这个是win10的系统&#xff0c;今天电脑突然运行着运行着就黑屏了&#xff0c;这家里的PC好久也没人用了&#xff0c;上网一看都是乱七八糟的硬件电容啥的&#xff0c;软件方面反正是装了个电脑管家。 有时候是这样的&#xff0c;问题很简单&#xff0c;先让电脑就停在桌面…

创维37K05HR黑屏有声音故障维修

转载1&#xff1a; 接一台创维新机37L05HR&#xff0c;1年多&#xff0c;刚过保。开机图像声音正常&#xff0c;放10分钟左右黑屏。声音正常。关机再开有正常。2分钟又出现黑屏。在保修期内&#xff0c;售后 来修两次此类故障都没有根治。拆机测5V 12V 24V都正常&#xff0c;高…

Android VideoView播放视频只有声音没有图像黑屏

问题描述: Android用VideoView播放视频只有声音没有图像黑屏,视频格式为Mp4,在晚上下载的&#xff0c;直接用电脑可以播放机子型号:Android 5.0 最后原因: 下载的视频格式编码格式有误,也就是说可能是flv格式的&#xff0c;只是后缀是MP4&#xff0c;最后换一个视频就可以了…

Android应用启动时白屏或者黑屏处理办法

老生常谈的问题了&#xff0c;随便记录一下吧。 通过设置主题来防止白屏或者黑屏 一般情况下&#xff0c;启动页面通常是全屏的&#xff0c;而且会用一张图片来展示用户打开应用程序后第一眼看到的界面。在手机中点击应用程序的图标到应用程序显示完MainActivity的视图这个过程…

三星手机摔一下,就花屏啦!!

菜鸟今天吃饭时&#xff0c;很嘚瑟啊&#xff0c;一不小心就把三星A7摔到地上&#xff0c;很伤心&#xff0c;心想着又要花一大笔钱去修理自己的手机啦&#xff01;上网百度啦一下&#xff0c;原来有力按住前置摄像头那一部分&#xff0c;也就是红色框框这一区域&#xff0c;就…

摔手机问题

参考文章&#xff1a; 蓝桥杯 真题 测试次数&#xff08;详解&#xff09;--------Five-菜鸟级 『蓝桥杯』2018蓝桥初赛 测试次数&#xff08;扔手机&#xff09;——动态规划 双蛋问题&#xff1a; 然后&#xff0c;到目前为止&#xff0c;我数论和动态规划都不会…… 个人…