1. 程式人生 > >轉載:android 各種xml資源的引用方式

轉載:android 各種xml資源的引用方式

前言

  本章內容為Android開發者指南的Framework Topics/Application Resources/Resource Types/More Types章節,譯為"更多資源型別",版本為Android 4.0 r1,翻譯來自:"呆呆大蝦",歡迎訪問他的微博:"http://weibo.com/popapa",再次感謝"呆呆大蝦" !期待你一起參與翻譯Android的相關資料,聯絡我[email protected]

Resources Types – More Types

譯者署名: 呆呆大蝦

版本:Android 4.0 r1

原文

更多資源型別

本頁定義了其它一些具體的資源型別,包括:

Bool

存放布林值的XML資源。

Color

存放顏色值的XML資源(十六進位制顏色)。

存放數量值的XML資源(帶計量單位)。

ID

為應用程式的資源和控制元件提供唯一標識的XML資源。

存放整數值的XML資源。

提供整數陣列的XML資源。

提供(用於Drawable物件陣列)的XML資源。

Bool

XML格式定義的布林值。

注意:bool是簡單型別資源,是用名稱(name屬性(而非XML檔名)來直接引用的。因此,在一個

XML檔案裡,可以把bool資源和其他簡單型別資源一起放入一個<resources>元素下。

檔案位置:

res/values/filename.xml

檔名可隨意指定。<bool>元素的名稱name將被用作資源ID

資源引用:

Java程式碼:R.bool.bool_name

XML程式碼:@[package:]bool/bool_name

語法:

<?xml version="1.0" encoding="utf-8"?> 

<resources> 

<bool 

name="bool_name" 

>[true | false]</bool> 

</resources>

元素:

<resources>

必填項必須是根節點。

無屬性。

<bool>

布林值:truefalse

屬性:

name

String型別。布林值的名稱,用作資源ID

示例:

存放在res/values-small/bools.xml XML的檔案:

<?xml version="1.0" encoding="utf-8"?> 

<resources> 

<bool name="screen_small">true</bool> 

<bool name="adjust_view_bounds">true</bool> 

</resources>

以下應用程式程式碼取出bool值:

boolean screenIsSmall = res.(R.bool.screen_small);

以下佈局(layoutXMLbool資源用於屬性:

<ImageView 

android:layout_height="fill_parent" 

android:layout_width="fill_parent" 

android:src="@drawable/logo" 

android:adjustViewBounds="@bool/adjust_view_bounds" />

Color

XML格式定義的顏色值。用RGB值和alpha通道指定顏色值。可以在任何接受十六進位制顏色值的地方使用color資源。還能在XML裡用到drawable資源時使用color 資源(比如:android:drawable="@color/green")。

顏色值總是以(#)字元開頭,後面跟著Alpha---藍資訊,格式如下之一:

·#RGB

·#ARGB

·#RRGGBB

·#AARRGGBB

注意:color是簡單型別資源,是用名稱(name)屬性(而非XML檔名)來直接引用的。因此,在一個XML檔案裡,可以把color資源和其他簡單型別資源一起放入一個<resources>元素下。

檔案位置:

res/values/colors.xml

檔名可隨意指定。<color>元素的名稱name將被用作資源ID

資源引用:

Java程式碼:R.color.color_name

XML程式碼:@[package:]color/color_name

語法:

<?xml version="1.0" encoding="utf-8"?> 

<color 

name="color_name" 

>hex_color</color> 

</resources>

元素:

必填項必須是根節點。

無屬性。

十六進位制表示的顏色值。如上所述。

屬性:

name

String型別。顏色的名稱,用作資源ID

示例:

存放在res/values/colors.xmlXML檔案:

<?xml version="1.0" encoding="utf-8"?> 

<resources> 

<color name="opaque_red">#f00</color> 

<color name="translucent_red">#80ff0000</color> 

</resources>

以下應用程式程式碼取出color資源:

int color = res.(R.color.opaque_red);

以下佈局(layoutXMLcolor資源用於屬性:

<TextView 

android:layout_width="fill_parent" 

android:layout_height="wrap_content" 

android:textColor="@color/translucent_red" 

android:text="Hello"/>

Dimension

XML格式定義的數量值。數量值是用數字後跟度量單位來指定的。例如:10px, 2in, 5spAndroid支援以下度量單位:

dp

解析度無關的畫素(Pixel)單位,一種基於螢幕的物理(畫素)解析度的抽象單位。此單位基於一個160 dpi(每英寸點數)的螢幕,所以160dp常常是1英寸且與螢幕畫素解析度無關。dp和畫素的比率會隨著螢幕密度而變化,但不一定成正比。建議用於在layout裡指定View尺寸 ,這樣UI在不同螢幕上能自動縮放而顯示出相同的大小。(“dip”“dp”同義,編譯器都可接受,雖然“dp”更近似於“sp”。)

sp

縮放無關的畫素單位,類似於dp,但還會根據使用者的字型大小設定進行縮放。建議用於指定字型大小,這樣根據螢幕解析度和使用者設定都能自動調整。

pt

點,基於螢幕實際尺寸,對應1/72英寸。

px

畫素,與螢幕實際畫素一致。這是個不建議使用的單位,因為在不同裝置上的實際表現會差異很大,每種裝置每英寸的畫素數可能不同,螢幕上的總畫素數亦可能更多或更少。

mm

毫米,基於螢幕物理尺寸。

in

英寸,基於螢幕物理尺寸。

注意:dimension是簡單型別資源,是用名稱(name)屬性(而非XML檔名)來直接引用的。因此,在一個XML檔案裡,可以把dimension資源和其他簡單型別資源一起放入一個<resources>元素下。

檔案位置:

res/values/filename.xml

檔名可隨意指定。<dimen>元素的名稱name將被用作資源ID

資源引用:

Java程式碼:R.dimen.dimension_name

XML程式碼:@[package:]dimen/dimension_name

語法:

<?xml version="1.0" encoding="utf-8"?> 

<dimen 

name="dimension_name" 

>dimension</dimen> 

</resources>

元素:

必填項必須是根節點。

無屬性。

<dimen>

度量值,用浮點數表示,後跟一個計量單位(dpspptpxmmin),如上所述。

屬性:

name

String型別。度量的名稱,用作資源ID

示例:

存放在res/values/dimens.xmlXML檔案:

<?xml version="1.0" encoding="utf-8"?> 

<resources> 

<dimen name="textview_height">25dp</dimen> 

<dimen name="textview_width">150dp</dimen> 

<dimen name="ball_radius">30dp</dimen> 

<dimen name="font_size">16sp</dimen> 

</resources>

以下應用程式程式碼取出dimension資源:

float fontSize = res.R.dimen.font_size);

以下layout XMLdimensions用於屬性:

<TextView 

android:layout_height="@dimen/textview_height" 

android:layout_width="@dimen/textview_width" 

android:textSize="@dimen/font_size"/>

ID

XML格式定義的資源唯一ID。對應<item>元素裡指定的名稱,Android開發工具在R.java類中建立一個唯一的整數。可用來標識應用程式資源(比如:UI佈局中的一個View,或者在應用程式程式碼中被用作一個唯一的整數(比如:對話方塊的ID或一個返回值)。

注意:ID是簡單型別資源,是用名稱(name)屬性(而非XML檔名)來直接引用的。因此,在一個XML檔案裡,可以把ID資源和其他簡單型別資源一起放入一個<resources>元素下。而且,請記住ID資源不代表一個實際的資源項,而只是一個可與其他資源繫結的唯一ID,或是一個用於應用程式程式碼中的唯一整數。

檔案位置:

res/