类库大魔王
类库大魔王 多年C++、Go项目经验,长期从事跨平台(Windows/macOS/iOS/Android)应用架构设计与开发。

设置Android app的preview screen


之前写过一篇文章谈到为Android app设置splash screen,以避免Qt写的app启动时有一段时间黑屏。今天收到一位朋友的email询问,在splash screen之前仍然会有一个黑屏,怎么去除。

这个问题其实很好解决,这是Android系统本身的设计如此,跟Qt本无关系。这个splash screen前出现的黑屏叫preview screen,我们可以通过设置一个theme来定义它的外观,一般说来我们可以通过把它的窗口背景色设置成跟splash screen的背景色相同,来使得这2个screen切换过渡看起来比较自然。

比如我在istkani上用splash screen是白色的背景色,于是需要添加一个文件 $(PROJECT)/android/res/values/styles.xml定义theme:

1
2
3
4
5
6
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="istkaniTheme" parent="@android:style/Theme.Holo.NoActionBar">
        <item name="android:windowBackground">@android:color/white</item>
    </style>
</resources>

注意,其中@android:color/white就是设置的颜色值。

然后修改$(PROJECT)/android/AndroidManifest.xml,设置application的theme:

1
2
3
4
5
6
<application 
				android:name="com.dfordsoft.istkani.IstkaniApp" 
				android:label="@string/app_name" 
				android:icon="@drawable/icon" 
				android:theme="@style/istkaniTheme" >
......

注意,这里@style/istkaniTheme要与前面styles.xml中定义的style name一致。

经过以上两步,启动app时会先显示一个全屏的白色preview screen,然后立即显示一个在白色背景之上有图案的splash screen,让人感觉非常自然。

感觉本文不错,不妨小额鼓励我一下!
如果你有Visa、MasterCard之类的国际银行卡,也可以考虑以下选项:
如果你看不到评论框,说明Disqus被墙了。