挖井

类库大魔王的挖井日记

挖一口属于自己的井


Qt for Mobile程序设置启动图片

Qt for Mobile默认是用了一张纯黑的图片作为程序启动图片,所以一开始程序启动时会出现1到几秒的黑屏,机器越慢,这个时间越长,比较不美观,我们可以自己动手设置上适合的图片。

移动app的启动图片在iOS上叫launch image,在Android上叫splash screen,在istkani上都用上了。

在iOS上传统的做法,可以在Xcode上分别为第一种屏幕设置launch image。但是由于Qt for Mobile的特殊性,一旦用qmake重新生成了xcodeproj bundle,那些修改就丢失了,要再设置一遍,这样就比较麻烦。其实是有一劳永逸的办法的:

  • 首先,按Apple的要求生成各个屏幕对应launch image文件,文件名也要统一按要求的来,如图
  • 然后,在Info.plist中设定launch image的文件名前缀
    <key>UILaunchImageFile</key>
    <string>istkani</string>
  • 接着,在.pro文件中让qmake生成对应的设置
ios {
    LaunchImages.files=$$system("find $$PWD/launchimage/ios/ -name '*.png'")
    LaunchImages.path=./
    QMAKE_BUNDLE_DATA += LaunchImages
    QMAKE_INFO_PLIST = iosInfo.plist
}
  • 最后,运行qmake重新生成xcodeproj bundle就可以了,不用再在Xcode里设置什么。

在Android上是另外一种方法。

  • 首先,把图片文件放在android/res/drawable目录下,如图
  • 然后,在android/res/layout目录下创建一个splash.xml文件,内容为
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_gravity="center"
    >
    <ImageView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:src="@drawable/logo"
        android:scaleType="fitXY"
        />
</LinearLayout>
  • 接着,修改android/AndroidManifest.xml文件,在第一个Activity节点处添加一个meta-data节点,注意android:resource属性要与第一步添加的图片文件名一致
<meta-data android:name="android.app.splash_screen_drawable" android:resource="@drawable/logo"/>
  • 再次修改.pro文件,让qmake知道去哪找android目录
android: {
    ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android
    OTHER_FILES += $$PWD/android/AndroidManifest.xml
}

  • 最后运行一下qmake,Android上的Splash screen也设好了。

本文地址:

https://minidump.info/blog/2015/05/launch-image-by-qt-for-mobile/

上一篇

Go语言中将其他编码字符转换为UTF-8

今天要把一段文本从gb2313转换为UTF-8,网上有一些第三方库,比如使用iconv之类来转换,其实有比较官方的方法:import "golang.org/x/net/html/charset"// convert from gb2313 to utf-8r := bytes.NewRead...…

Go 全文阅读
下一篇

设置Android app的preview screen

之前写过一篇文章谈到为Android app设置splash screen,以避免Qt写的app启动时有一段时间黑屏。今天收到一位朋友的email询问,在splash screen之前仍然会有一个黑屏,怎么去除。这个问题其实很好解决,这是Android系统本身的设计如此,跟Qt本无关系。这个s...…

Coding 全文阅读