zoukankan      html  css  js  c++  java
  • Qt for Android 启动短暂的黑屏或白屏问题如何解决?

    解决方法一:

    使用透明主题
    点击项目 -> 在 构建设置 里面找到 Build Android APK 栏目,点击 create templates 创建一个 AndroidManifest.xml

    <?xml version="1.0"?>
    <manifest package="org.qtproject.example" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="1.0" android:versionCode="1" android:installLocation="auto">
        <application android:hardwareAccelerated="true" android:name="org.qtproject.qt5.android.bindings.QtApplication" android:label="-- %%INSERT_APP_NAME%% --">
            <activity
                android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation"
                android:name="org.qtproject.qt5.android.bindings.QtActivity"
                android:label="-- %%INSERT_APP_NAME%% --"
                android:screenOrientation="unspecified"
                android:launchMode="singleTop"
                android:theme="@android:style/Theme.Translucent.NoTitleBar"
    						<!--  添加上面一条即可,只是把黑屏设置成透明的而已,启动还是会慢  -->
    						<!--  @android:style/Theme.Translucent   -->
                <!-- @android:style/Theme.Translucent.NoTitleBar   -->
                <!-- @android:style/Theme.Translucent.NoTitleBar.Fullscreen   -->
                >
    
                <intent-filter>
                    <action android:name="android.intent.action.MAIN"/>
                    <category android:name="android.intent.category.LAUNCHER"/>
                </intent-filter>
    
                <!-- Application arguments -->
                <!-- meta-data android:name="android.app.arguments" android:value="arg1 arg2 arg3"/ -->
                <!-- Application arguments -->
    
                <meta-data android:name="android.app.lib_name" android:value="-- %%INSERT_APP_LIB_NAME%% --"/>
                <meta-data android:name="android.app.qt_sources_resource_id" android:resource="@array/qt_sources"/>
                <meta-data android:name="android.app.repository" android:value="default"/>
                <meta-data android:name="android.app.qt_libs_resource_id" android:resource="@array/qt_libs"/>
                <meta-data android:name="android.app.bundled_libs_resource_id" android:resource="@array/bundled_libs"/>
                <!-- Deploy Qt libs as part of package -->
                <meta-data android:name="android.app.bundle_local_qt_libs" android:value="-- %%BUNDLE_LOCAL_QT_LIBS%% --"/>
                <meta-data android:name="android.app.bundled_in_lib_resource_id" android:resource="@array/bundled_in_lib"/>
                <meta-data android:name="android.app.bundled_in_assets_resource_id" android:resource="@array/bundled_in_assets"/>
                <!-- Run with local libs -->
                <meta-data android:name="android.app.use_local_qt_libs" android:value="-- %%USE_LOCAL_QT_LIBS%% --"/>
                <meta-data android:name="android.app.libs_prefix" android:value="/data/local/tmp/qt/"/>
                <meta-data android:name="android.app.load_local_libs" android:value="-- %%INSERT_LOCAL_LIBS%% --"/>
                <meta-data android:name="android.app.load_local_jars" android:value="-- %%INSERT_LOCAL_JARS%% --"/>
                <meta-data android:name="android.app.static_init_classes" android:value="-- %%INSERT_INIT_CLASSES%% --"/>
                <!--  Messages maps -->
                <meta-data android:value="@string/ministro_not_found_msg" android:name="android.app.ministro_not_found_msg"/>
                <meta-data android:value="@string/ministro_needed_msg" android:name="android.app.ministro_needed_msg"/>
                <meta-data android:value="@string/fatal_error_msg" android:name="android.app.fatal_error_msg"/>
                <!--  Messages maps -->
    
                <!-- Splash screen -->
                <!-- meta-data android:name="android.app.splash_screen_drawable" android:resource="@drawable/logo"/ -->
                <!-- meta-data android:name="android.app.splash_screen_sticky" android:value="true"/ -->
                <!-- Splash screen -->
    
                <!-- Background running -->
                <!-- Warning: changing this value to true may cause unexpected crashes if the
                              application still try to draw after
                              "applicationStateChanged(Qt::ApplicationSuspended)"
                              signal is sent! -->
                <meta-data android:name="android.app.background_running" android:value="false"/>
                <!-- Background running -->
    
                <!-- auto screen scale factor -->
                <meta-data android:name="android.app.auto_screen_scale_factor" android:value="false"/>
                <!-- auto screen scale factor -->
    
                <!-- extract android style -->
                <!-- available android:values :
                    * full - useful QWidget & Quick Controls 1 apps
                    * minimal - useful for Quick Controls 2 apps, it is much faster than "full"
                    * none - useful for apps that don't use any of the above Qt modules
                    -->
                <meta-data android:name="android.app.extract_android_style" android:value="full"/>
                <!-- extract android style -->
        </activity>
    
        <!-- For adding service(s) please check: https://wiki.qt.io/AndroidServices -->
    
        </application>
    
        <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="16"/>
        <supports-screens android:largeScreens="true" android:normalScreens="true" android:anyDensity="true" android:smallScreens="true"/>
    
        <!-- The following comment will be replaced upon deployment with default permissions based on the dependencies of the application.
             Remove the comment if you do not require these default permissions. -->
        <!-- %%INSERT_PERMISSIONS -->
    
        <!-- The following comment will be replaced upon deployment with default features based on the dependencies of the application.
             Remove the comment if you do not require these default features. -->
        <!-- %%INSERT_FEATURES -->
    
    </manifest>
    
    
    解决方法二:

    使用图片替换主题

    在res/values文件目录下新建一个 style.xml 文件,文件内容如下
    <?xml version='1.0' encoding='utf-8'?>
    <resources>
    <style name="Theme.AppStartLoad" parent="android:Theme">
        <item name="android:windowBackground">@drawable/logo</item>
    		<!-- @drawable/logo 确保 android
    esdrawable-hdpilogo.png 存在 -->
        <item name="android:windowNoTitle">true</item>
    </style>
    <style name="Theme.AppStartLoadTranslucent" parent="android:Theme">
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowNoTitle">true</item>
    </style>
    </resources>
    
    然后在 AndroidManifest.xml 中应用上面定义的两个主题,添加的位置如下
    <application   android:theme = "@style/Theme.AppStartLoadTranslucent">
    <activity  android:theme="@style/Theme.AppStartLoad">
    
                <!-- Splash screen -->
                <!-- <meta-data android:name="android.app.splash_screen_drawable" android:resource="@drawable/logo"/> -->
                <!-- <meta-data android:name="android.app.splash_screen_sticky" android:value="true"/> -->
                <!-- Splash screen -->
    						//这上面的是添加启动图片
    
    解决方案三
    https://falsinsoft.blogspot.com/2017/07/qml-show-android-native-splash-screen.html
    
    
  • 相关阅读:
    HTML5标签变化
    接口测试基础入门学习
    1.1Axure简介
    win 7命令行大全
    程序集强签名
    源代码的文件头格式化
    redmine2.3环境搭建
    静态成员和方法的使用场合及利弊分析
    .Net Memory Profiler入门
    TransactionScope类
  • 原文地址:https://www.cnblogs.com/cheungxiongwei/p/8661211.html
Copyright © 2011-2022 走看看