Android 資源

本文介紹 Xamarin.Android 中 Android 資源的概念,並將說明如何使用它們。 它涵蓋如何使用 Android 應用程式中的資源來支援應用程式當地語系化,以及多個裝置,包括不同的螢幕大小和密度。

概觀

Android 應用程式很少只是原始程式碼。 通常有許多其他檔案組成應用程式:視訊、影像、字型和音訊檔案,只是為了命名一些。 這些非原始碼檔案統稱為資源,並在建置程式期間編譯(以及原始程式碼),並封裝為 APK,以散發和安裝到裝置上:

Packaging diagram

資源為 Android 應用程式提供數個優點:

  • 程序代碼分離 – 將原始程式碼與影像、字串、功能表、動畫、色彩等分開。因此,當地語系化時,這類資源可大幅協助。

  • 以多個裝置 為目標 – 提供較簡單的不同裝置組態支援,而不需要變更程序代碼。

  • 編譯時間檢查 – 資源是靜態的,並編譯至應用程式。 這可讓編譯時期檢查資源的使用量,當很容易攔截和更正錯誤時,而不是較難找到且成本較高的運行時間來更正。

啟動新的 Xamarin.Android 專案時,會建立名為 Resources 的特殊目錄,以及一些子目錄:

Resources folder and contents

在上圖中,應用程式資源會根據其類型組織成這些子目錄:影像會移至 繪製的目錄中;檢視會 移至版面配置 子目錄等。

在 Xamarin.Android 應用程式中,有兩種方式可以存取這些資源: 以程式 設計方式在程式代碼中,並以 宣告方式 在 XML 中使用特殊 XML 語法。

除非指定更明確的相符專案,否則所有裝置都會使用這些資源 ,稱為「預設資源 」。 此外,每種資源類型都可以選擇性地讓 Android 用來以特定裝置為目標的替代資源 。 例如,可能會提供資源以使用者的地區設定、螢幕大小為目標,或裝置從直向旋轉到橫向90度等。在這些案例中,Android 會載入應用程式使用的資源,而開發人員不需要任何額外的編碼工作。

替代資源是藉由將稱為 限定符的簡短字串新增至保存指定資源類型的目錄結尾來指定。

例如, resources/drawable-de 會指定設定為德文地區設定之裝置的影像,而 resources/drawable-fr 會保留設定為法文地區設定之裝置的影像。 您可以在下圖中看到提供替代資源的範例,其中相同的應用程式只會隨著裝置的地區設定變更而執行:

Example screens for different locales

本文將全面探討如何使用資源,並涵蓋下列主題:

  • Android Resource Basics – 以程序設計方式和宣告方式使用預設資源,將影像和字型等資源類型新增至應用程式。

  • 裝置特定組態 – 支援應用程式中不同的螢幕解析度和密度。

  • 當地語系化 – 使用資源來支援應用程式可使用的不同區域。