Qt on Android 資源檔系統qrc與assets

來源:互聯網
上載者:User

標籤:fancybox   nbsp   開發   簡單   gre   image   clu   tab   設定檔   

   使用 Qt 為 Android 開發應用時,有時我們的應用會攜帶一些資源檔,如 png 、 jpg 等,也可能有一些設定檔,如 xml 等,這些檔案放在哪裡呢?有兩種方式:qrc和assets,咱們分別來看下。

Qt Resource System

       qrc , Qt 的資源檔系統,很好用哦。看個圖:

       你放在 qrc 裡的檔案,如 copy.png ,會被編譯到 exe 檔案中(Android應用是 libapplication.so )。當你運行應用時,這些資源也會被載入到記憶體。如果你的資源很大,這是個問題。如果是在 Android 平台上,你還有另外一個選擇。

Android 的 assets

       Android 項目目錄中有一個 assets 目錄,該目錄內放置的檔案會原封不動打包到 APK 中,APK 在 Android 系統安裝時, assets 不會被安裝到應用目錄下,注意,它還在 APK 裡哦,但是應用可以訪問這個檔案夾內的資源! Qt 利用了這種機制,實現了 assets 虛擬檔案系統,我們常見的 QFile 、 QPixmap 、 QImage 等,都可以通過 “assets:/“ 的方式來訪問 assets 內的檔案。 使用 assets 虛擬檔案系統,你的資源檔不會在程式啟動時就載入到記憶體,比較節省資源。

       那資源檔怎麼放呢?很簡單,就是放在 Qt 項目目錄下的 android/assets 檔案夾內即可。

       只要你這麼一放, Qt 編譯時間就會把 assets 內的檔案打包到 APK ,然後就可以在 C++ 代碼內訪問了。

使用 assets 的 Android 樣本

       建立一個針對 Android 的項目。 建立 AndroidManifest.xml ,然後在 android/assets 目錄下放一個 beauty.jpg 。刪除項目的 widget.h 和 widget.cpp 。修改 main.cpp ,如下:

12345678910111213 #include <QApplication>#include <QLabel>#include <QPixmap> int main(int argc, char *argv[]){  QApplication a(argc, argv);  QLabel label;  QPixmap pixmap("assets:/beauty.jpg");  label.setPixmap(pixmap);  label.show();  return a.exec();}

       編譯,運行,可以看到 :

       OK,到此結束。

https://greedysky.github.io/2016/04/03/Qt%20on%20Android%20%E8%B5%84%E6%BA%90%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9Fqrc%E4%B8%8Eassets/

Qt on Android 資源檔系統qrc與assets

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.