1. 程式人生 > >Android XML 檔案中引用資源的方法

Android XML 檔案中引用資源的方法

在 XML 檔案中引用資源的語法如下:
1) @[package:]type/name使用我們自己包下的資源可以省略 package。
在 xml 檔案中,如 main.xml 以及AndroidMainfest.xml 檔案中通過“@drawable/icon”的方式獲取。
其中“@”代表的是R.java 類,“drawable”代表 R.java 中的靜態內部類“drawable”,“/icon”代表靜態內部類“drawable”中的靜態屬性“icon”。
而該屬性可以指向 res 目錄下的“drawable-*dpi”中的 icon.png 圖示。其他型別的檔案也比較類似 。
凡是在R檔案中定義的資源都可以通過“ @Static_inner_classes_name/resourse_name”的方式獲取。如“@id/button”,“@string/app_name”。

2) 如果訪問的是 Android 系統中帶的檔案,則要添上包名“android:”。
如android:textColor=”@android:color/red” 。

3) 引用主題屬性
另外一種資源值允許你引用當前主題中的屬性的值。這個屬性值只能在樣式資源和 XML 屬
性中使用;它允許你通過將它們改變為當前主題提供的標準變化來改變 UI 元素的外觀,而不
是提供具體的值。
android:textColor=”?android:textDisabledColor”
注意,這和資源引用非常類似,除了我們使用一個”?”字首代替了”@”。當你使用這個標記
時,你就提供了屬性資源的名稱,它將會在主題中被查詢–因為資源工具知道需要的屬性資
源 , 所以你不需要顯示宣告這個型別 ( 如 果 聲 明 , 其 形 式 就
是?android:attr/android:textDisabledColor)。
除了使用這個資源的識別符號來查詢主題中的值代替原始的資源,其命名語法和”@”形式一致:?[namespace:]type/name,這裡型別
可選。

“@+id/string_name”表示式
順便說一下,在佈局檔案當中我們需要為一些元件新增 Id 屬性作為標示,可以使
用如下的表示式“@+id/string_name”
其中“+”表示在 R.java 的名為 id 的內部類中新增一條記錄。如”@+id/button”的含義是在 R.java 檔案中的 id 這個靜態內部類新增一條常量名為 button,該常量就是該資源的識別符號。如果 id 這個靜態內部類不存在,則會先生成它。
通過該方式生成的資源識別符號,仍然可以以“@id/string_name”的方式引用。