Qt for android 在安卓上面运行app启动闪黑屏的解决方法

版权声明:如需转载,请告知博主并声明出处 https://blog.csdn.net/CLinuxF/article/details/55259712

      最近在运行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);即可解决,如下图:

包名为:

  1. import android.graphics.Bitmap;  
  2. import android.graphics.BitmapFactory;  
  3. import android.graphics.Canvas;  
  4. import android.graphics.PixelFormat; 

具体可参考:https://stackoverflow.com/questions/8772862/surfaceview-flashes-black-on-load

猜你喜欢

转载自blog.csdn.net/CLinuxF/article/details/55259712