專案的資源,Layout、字串與圖檔等,但沒有R類別就麻煩了

資源

一個應用程式除了Java類別外,一定會用到其他如畫面配置、圖檔、樣式甚至字串資料等,這些在Android中稱之為「Resources資源」,資源依其類型放置在專案的「res」資料夾中。在一個Java程式中存取檔案的代價是高的,因為要經過開啟檔案、讀取、解析、辨識等工作,但程式碼又經常需要存取畫面中的元件。

在現代的手持裝置程式架構中,先整理一個應用程式中所使用的資源,如圖檔、畫面XML檔、字串等,為每個資源「造冊」、「分類」,產生一個「資源造冊類別」,讓程式直接利用資源造冊類別取得資源。在Android中,這個類別的名稱就叫「R」,其套件名稱就是應用程式的套件名稱,如本例為「com.tom.bmi」,類別的全名為「com.tom.bmi.R」。

R類別

R類別是自動產生的,不需要手動加入,也不需要修改它,當新增或修改資源時,皆會自動產生新的R類別,例如新加入一個圖檔、修改畫面配置檔中的元件屬性或加入一個元件時,只要按下儲存後,會立即產生對應最新資源狀態的R類別。

在Layout版面內的每個元件所設定的id屬性的用途為辨識,一個應用程式的所有版面(Layout)中的每一個元件都會被自動掃描,依照id值製成一個對照表,成為一個R類別,未來可在Activity類別中使用這個R類別快速存取到元件。

每個在資源中的值都會自動產生,自動指派不重覆的int整數值,畫面中的元件(View)所設定的id值,可使用R.id.xxx存取,如果是字串資源(在/res/values/strings.xml)則會自動分配為R.string.xxx,圖檔資源則會是R.drawable.xxx,以圖檔檔名為命令方式。自動產生的R類別原始碼如下圖:

除了上述常用的資源外,還有如R.layout.xxx(版面)、R.array.xxx(陣列)、R.anim.xxx(動畫)與R.dimen.xxx(大小)等資源。

圖檔-drawable

在應用程式中使用的圖檔,如圖示檔、按鈕的底圖與在畫面中使用到的所有小圖示等,都應放置在這個目錄下。

畫面配置-layout

活動畫面的版面配置設定檔,有關畫面設置,如按鈕、輸入方塊、文字區塊、下拉選單的的畫面設計檔,使用XML格式儲存在這個目錄下。

選單-menu

顯示在畫面上方的橫向列的功能選單,使用者以XML檔案方式設計選單的項目與內容,儲存在此目錄下,可以在活動中使用、設定這些選單。

資料-values

字串(string)、顏色(color)、方塊區域大小(dimension)或字型大小(text size)在Android中都可以設定為資料(value),設定後會成為R類別的項目之一,例如R.string.字串名、R.color.顏色名等資源,可使用在類別的程式中。

[版權聲明]
本文章版權為湯秉翰所有,授權範圍僅限綠豆湯網站使用,除Facebook之類社群等未更改本文章出處之分享行為不在此限,其他個人或公司未經作者同意,不得任意將本文章內容轉載至其他網站,或以任何形式重製,為以免觸犯著作權法,請尊重作者之智慧財產權。

2 Comments

  1. 張右昇

    每個在資源中的值都會自動產生,自動指派不重覆的int整數值,畫面中的元件(View)所設定的id值,可使用R.id.xxx存取,如果是字串資源””””””(在/rec/values/strings.xml)”””””則會自動分配為R.string.xxx,圖檔資源則會是R.drawable.xxx,以圖檔檔名為命令方式。自動產生的R類別原始碼如下圖:
    上面應該是
    /res/values/strings.xml

發佈回覆給「Hank Tom」的留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *