3.5 資源 Resources
Last updated
Last updated
一個應用程式除了用來控制行為的 Kotlin/Java 類別外,一定會用到其他如畫面配置、圖檔、樣式甚至字串資料等,這些在 Android 中稱之為「Resources 資源」,資源依其類型放置在專案的「res」資料夾中。在 程式中存取檔案的代價是高的,因為要經過開啟檔案、讀取、解析、辨識等工作,但程式碼又經常需要存取畫面中的元件。
在現代的手持裝置程式架構中,先整理一個應用程式中所使用的資源, 如圖檔、畫面 XML 檔、字串等,為每個資源「造冊」、「分類」,產生一個 「資源造冊類別」,讓程式直接利用資源造冊類別取得資源。在 Android 中, 這個類別的名稱就叫「R」,其套件名稱就是應用程式的套件名稱,如本例為 「com.tom.bmi」,類別的全名為「com.tom.bmi.R」。
R 類別是自動產生的,不需要手動加入,也不需要修改它,當新增或修 改資源時,皆會自動產生新的 R 類別,例如新加入一個圖檔、修改畫面配置 檔中的元件屬性或加入一個元件時,只要按下儲存後,會立即產生對應最新資源狀態的 R 類別。
在 Layout 版面內的每個元件所設定的 id 屬性的用途為辨識,一個應用 程式的所有版面 (Layout) 中的每一個元件都會被自動掃描,依照 id 值製成一 個對照表,成為一個 R 類別,未來可在 Activity 類別中使用這個 R 類別快速存取到元件。
每個在資源中的值都會自動產生,自動指派不重覆的 Int 整數值,畫面中的元件 (View) 所設定的 id 值,可使用 R.id.xxx 存取,如果是字串資源 ( 在 /rec/values/strings.xml) 則會自動分配為 R.string.xxx,圖檔資源則會是 R.drawable.xxx,圖檔檔名去除副檔名後,即成為該圖檔在資源中的名稱。
除了上述常用的資源外,還有如 R.layout.xxx (版面)、R.array.xxx (陣列)、R.anim.xxx (動畫) 與 R.dimen.xxx (大小) 等資源。
在應用程式中使用的圖檔,如圖示檔、按鈕的底圖與在畫面中使用到的 所有小圖示等,都應放置在這個目錄下。
活動畫面的版面配置設定檔,有關畫面設置,如按鈕、輸入方塊、文字 區塊、下拉選單的的畫面設計檔,使用 XML 格式儲存在這個目錄下。
顯示在畫面上方的橫向列的功能選單,使用者以 XML 檔案方式設計選 單的項目與內容,儲存在此目錄下,可以在活動中使用、設定這些選單。
字串 (string)、顏色 (color)、方塊區域大小 (dimension) 或字型大小 (text size) 在 Android 中都可以設定為資料 (value),設定後會成為 R 類別的項目 之一,例如R.string.字串名、R.color.顏色名等資源,可使用在類別的程式中。