Android R檔案介紹

Jonny0318發表於2017-04-30

R.Java 檔案中預設有attrdrawablelayoutstring等色哥靜態內部類,每個靜態內部類分別對應著一種資源,如layout靜態內部類對應著layout中的接介面檔案,其中每個靜態內部類中的靜態常量分別定義為一條資源識別符號,如下:

//下面對應著的是layout目錄下的main.xml檔案  
public static final int main = 0x7f030000;

  • 資原始檔只能以小寫字母下劃線做首字母,隨後的名字中只能出現[a-z0-9_] 這些字元,否則R.java檔案不會自動更新,並且eclipse會提示錯誤
  • 當開發者在res/目錄中任何一個子目錄中新增相應型別的檔案之後,ADT會在R.java檔案中相應內部類中自動生成一條靜態int型別的常量,對新增的檔案進行索引
  • 如果在layout目錄下新增一個新介面,那麼在public static final class layout 中也會新增相應的靜態int常量
  • 相反,我們再res目錄下刪除任何一個檔案,其在R.java檔案中對應的記錄會被ADT自動刪除
  • R.java檔案除了自動標示資源的索引功能外,如果res目錄中的某個資源在應用中沒有被使用到,在該應用被編譯的時候系統就不會把對應的資源編譯到該應用的apk包中,節省資源

通過R檔案來引用所需要的資源:


在 java 程式中應用資源

  1. java程式中應用資源
    • 按照java的語法來引用即 R.resource_type.resource_name
    • 注意:resource_name 不需要檔案的字尾名
    • Android系統本身自帶了很多資源可以引用,只是需要在前面加上 Android. 以申明來自Android系統,即Android.R.resource_type.resource_name
  2. xml檔案中引用資源
    • xml檔案中一般是通過@drawable/icon的方式獲取的,其中@代表R.java類,drawable代表的是R.java中的靜態內部類drawable,/icon代表靜態內部類drawable中的靜態屬性icon
    • 如果訪問的是Android系統自帶的檔案,則要新增Android:,如下:
    • 在佈局檔案中當我們需要為一些元件新增Id屬性作為標識@+id/string_name,其中“+”表示在R.java的名為Id的內部類中新增一條常量名為string_name的記錄

android:textColor="@android:color/red" 

轉載自:http://blog.csdn.net/llp1992/article/details/40681599
僅用於學習筆記,勿做他用


相關文章