天天看點

Delphi XE之路(3)解決啟動時短暫的黑屏

以下轉自玻璃城市的部落格,已經在我手機上測試成功!不過帶來一個新的問題,在手機橫向時程式會停止執行??? 

   delphi xe5 編譯的程式在啟動時會有短暫的黑屏出現,這個現象産生是因為啟動首個activity時會加載一些初始化資料,整個時間大約在2~3秒,如何處理?

第一步:建立2個檔案:loading.png 和 styles.xml,其中loading.png 是啟動時替代黑屏的圖檔,styles.xml是對背景圖檔的定義,其内容為:

<resources> 

<style name="mytheme.notitlebar.custombackground" parent="@android:theme.black">  

  <item name="android:windowbackground">@drawable/loading</item>  

  <item name="android:windownotitle">true</item>  

  <item name="android:windowfullscreen">true</item>  

  <item name="android:windowcontentoverlay">@null</item>  

</style> 

</resources>

特别需要注意的是:

(1)delphi中代碼是大小寫不敏感的,是以delphi程式員一般在寫程式時不太注意大小寫。而在java下大小寫是敏感的,在styles.xml定義中“loading”的這個檔案名一定要用小寫,否則在部署時會封包件名錯誤。

(2)這兩個檔案可以放在任何目錄下,我是放在了工程檔案所在目錄下建立的res目錄。如下圖:

Delphi XE之路(3)解決啟動時短暫的黑屏

第二步:将建立好的2個檔案加入到工程的部署檔案清單中,操作是打開工程的部署菜單,點選增加按鈕(add files),将建立好的2個檔案分别加入到清單中,如下圖:

Delphi XE之路(3)解決啟動時短暫的黑屏
Delphi XE之路(3)解決啟動時短暫的黑屏

對加入的2個檔案,修改platform、remotepath兩個屬性,其中platform隻選擇android,如下圖:

Delphi XE之路(3)解決啟動時短暫的黑屏

按下f2或輕按兩下進入,修改remotepath屬性,如下圖

Delphi XE之路(3)解決啟動時短暫的黑屏

其中

  styles.xml的remotepath為 res\values\

  loading.png的remotepath為 res\drawable-port\

如下圖:

Delphi XE之路(3)解決啟動時短暫的黑屏

第三步:ctrl+f9編譯工程檔案,并生成相關配置檔案,打開工程檔案所在目錄,找到工程預設配置檔案androidmanifest.template.xml,如下圖:

Delphi XE之路(3)解決啟動時短暫的黑屏

用delphi ide 或記事本打開 androidmanifest.template.xml 檔案,查找以下文字:

android:theme="%theme%"

替換為以下文字,注意是替換,不是新增。

android:theme="@style/mytheme.notitlebar.custombackground"

第四步:再次編譯,部署到虛拟機,并運作後看到的啟動效果如下:

Delphi XE之路(3)解決啟動時短暫的黑屏

這裡需要說明的是:

有人說delphi xe5 for android的編譯太慢,其實不是這樣的。delphi的編譯器在生成.so檔案時是非常快的,在我的機器上大約3~5秒就完成。慢是慢在部署和安裝到虛拟機的時間。在我機器上生成apk檔案大約需要10秒,而将apk檔案下載下傳到虛拟機上的時間取決于傳輸速率,在我的機器上是130k/s~500k/s之間,如下圖:

Delphi XE之路(3)解決啟動時短暫的黑屏

這個緩慢的下載下傳過程超過了一分鐘,是以感覺很慢。如果使用真實裝置,比如手機或pad,由于usb下載下傳速度很快,反而用起來感覺不錯,隻是調試速度很慢。

繼續閱讀