讓我們來看iOS...
啟稿: 2015/01/11
完稿: 2015/01/12
QT CueTai線索台
跨平台實作09-跨平台實作進階:採用外部資源檔,四作業系統自動判斷
同樣的在iPhone Simulator所看到標準建置後程式的圖示是另外一種如下圖的同心圓標準圖示,所以我們也來看看在QT如何在iPhone iOS中採用自行定義執行程式icon!
l 準備iOS所需要的Icon
雖然Mac OS的app與iPhone 的 app都是用Xcode編譯出來的,可是在處理程式圖示的方法不一樣;在Xcode中若你要建立iPhone 的 app,開啓的專案初始就有準備兩個全黑的png檔案,如同下圖所示:
icon.png --- 57x57, for iPhone Non-Retina
icon@2x.png --- 114x114, for iPhone Retina
當然還有其他不同狀態下所需要的不同解析度的圖示,不過最基本就是需要這兩種解析度的圖示!
QT在建制iPhone 的 app也是利用Xcode編譯出來的,所以說我們要改變iPhone Simulator所看到標準建置後程式的圖示,就是要準備最基本這兩種解析度的png圖示!
各位可以利用以下的免費程式將預先做好的圖檔,轉換成所需要的解析度的圖示!
- iConify
下圖是執行的畫面,只要把預先做好的圖檔拖曳過去就可以轉換成所需要解析度的icons
在此同樣我們選同一個鬧鐘圖示來轉換,轉換後放在source code目錄下:
準備好了所需要的圖示,現在可以在QT下加入iPhone所需要的程式Icon了!
l 在QT下建置iOS封裝Icon
上次我們在QT說明畫面的搜尋欄位輸入keyword "Application Icon",發現了相當有用的Setting the Application Icon資訊!說明中包括了Windows, Mac OS, Linus三大作業系統如何加入應用程式圖示說明,但為何Setting the Application Icon說明文件沒有iOS呢?因為可攜式裝置建制的方式於桌上型的程式建制方法還是不同,所以有關iOS所需要的Icon方面的資訊,可重新輸入keyword "IOS deployment",各位在"QT for iOS"或直接選擇"Platform Notes - iOS"將看到如下的資訊:
說明中提到Xcode中的Info.plist含有所有打包的資訊與資源檔,也是利用上次用過打包資源檔的QMAKE_BUNDLE_DATA來打包;不過還是沒有換icon相關資訊,不過在下方有連接有關asset catalogs資訊:
For image resources, an alternative way is to make use of asset catalogs in Xcode.
可惜在iOS Developer Library也沒有太深入的資訊,還是一頭霧水;在這種情況就只好上網Google一下,輸入QT icon for iOS得到以下相關資訊
有趣的是在2013/7/10有人也問了how to set an ios app icon with Qt framework同樣的問題如下:
做法就是必須將圖示如同資源檔的方式QMAKE_BUNDLE_DATA來打包;如此才比較懂得原來QT說明中提到的意義!
所以我們可以修改analogclock.pro內容如下:
ResourcesFiles.files = \
../analogclock/audio/alarm.wav \
../analogclock/audio/bird.wav \
../analogclock/audio/cricketnight.wav \
../analogclock/audio/dolphin.wav \
../analogclock/audio/hour.wav \
../analogclock/audio/laser.wav \
../analogclock/audio/water.wav
ResourcesFiles.path = resource
IconFiles.files = \
../analogclock/icon.png \
../analogclock/icon@2x.png \
../analogclock/Default.png \
../analogclock/Default@2x.png
QMAKE_BUNDLE_DATA += ResourcesFiles IconFiles
Note:在此特別注意一下,除了基本的icon.png及icon@2x.png兩檔案,同時還要加入Default.png及Default@2x.png才能夠在iPhone Simulator所看到建置後程式改變的圖示!
l 建置與執行
建置後在iPhone Simulator正式執行結果如下:
檢查一下建置後程式的目錄下放置所有的檔案如下
如此就大功告成!
l 延伸應用及問題
How about Windows?
