最近在运行app的时候,发现程序启动的时候会有闪黑屏的现象,然后才能正常进入程序。查阅很多资料,始终不能完美解决,通过不断摸索,最近才想出一个取巧的方法,可以完美避免启动黑屏的现象。
首先我们在工程目录下添加一个styles.xml文件,如下图:
styles.xml中的内容如下:
<resources>
<style name="Theme.AppStartLoadTranslucent" parent="android:Theme">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowNoTitle">true</item>
</style>
</resources>
然后在AndroidManifest.xml中的activity中加上android:theme="@style/Theme.AppStartLoadTranslucent",如下图
下图名称是之前没有改的,请自行更改为styles.xml中的名称(如还有不对应的地方,请告知一下)
这样改完之后,运行程序发现黑屏到启动界面之后了,也就是启动界面到主界面之间还有黑屏,需要打开AndroidManifest.xml中的
<!-- Splash screen --> 默认是全部屏蔽的,如下图:
打开该语句是添加开机图片,来替代黑色,所以要选择一张图片,更名为logo,后缀名可以是jpg或者png等其他图片格式,最后将图片复制到android目录下的res目录下的drawable-*目录下(drawable- hdpi、drawable- mdpi、drawable-ldpi),总共有三个,复制进去后,启动程序,会发现启动黑屏不见了,显示的是开机图片logo,但是在进入程序主界面会闪一下才会正常进入,我想到的解决办法是在qml中加上一个空的webview,这样程序加载完开机图片,会呈现一片白色,不会出现闪一下的现象。
在Component.onCompleted中将webview隐藏,可以替代解决闪现黑屏的问题!
//------------------------------------------更新2018年4月20日 09:28:41-------------------------------------------------------------------------------------------------------------//
今天研究偶然发现,在java的构造函数中加入getWindow().setFormat(PixelFormat.TRANSLUCENT);即可解决,如下图:
包名为:
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.PixelFormat;
具体可参考:https://stackoverflow.com/questions/8772862/surfaceview-flashes-black-on-load
---------------------
作者:Fu_Lin_
来源:CSDN
原文:https://blog.csdn.net/clinuxf/article/details/55259712
版权声明:本文为博主原创文章,转载请附上博文链接!