(转载)http://blog.csdn.net/hanyingjie327/article/details/19334877
Android中Bool、Color、Dimension、ID、Integer、Integer Array、Typed Array类型的资源:
一、Bool
定义的文件位置:res/values/filename.xml。文件名任意。
引用:
Java类: R.bool.bool_name
XML文件: @[package:]bool/bool_name
语法:
res/values/bools.xml
:JAVA类中取值:
二、Color
使用color标签来定义一种颜色资源,使用#符号来指定颜色值,其后跟一个可选的Alpha通道,再之后使用一个或两个十六进制值来标识RGB。样例:
- #RGB
- #ARGB
- #RRGGBB
- #AARRGGBB
文件位置:res/values/colors.xml。文件名任意。
引用:
Java类:
R.color.color_name
XML文件:
@[package:]color/color_name
res/values/colors.xml
:
Java代码引用:
XML资源文件中引用:
三、Dimension(尺寸)
要指定一个尺寸资源,可以使用dimen标签来指定尺寸的值,并在其后跟一个标识符来描述尺寸的单位:
- px:屏幕像素,与屏幕实际像素一致。这是个不建议使用的单位,因为在不同设备上的实际表现会差异很大,每种设备每英寸的像素数可能不同,屏幕上的总像素数亦可能更多或更少。
- in:物理英寸,基于屏幕物理尺寸。
- pt:物理点,基于屏幕实际尺寸,对应1/72英寸。
- mm:物理毫米,基于屏幕物理尺寸。
- dp:非密度制约的像素。分辨率无关的像素(Pixel)单位,一种基于屏幕的物理(像素)分辨率的抽象单位。此单位基于一个160 dpi(每英寸点数)的屏幕,所以160dp常常是1英寸且与屏幕像素分辨率无关。dp和像素的比率会随着屏幕密度而变化,但不一定成正比。建议用于在layout里指定View尺寸 ,这样UI在不同屏幕上能自动缩放而显示出相同的大小。(“dip”和“dp”同义,编译器都可接受,虽然“dp”更近似于“sp”。)
- sp:缩放比例无关的像素。类似于dp,但还会根据用户的字体大小设置进行缩放。建议用于指定字体大小,这样根据屏幕分辨率和用户设置都能自动调整。
文件位置:res/values/filename.xml。文件名任意。
引用:
Java类:
R.dimen.dimension_name
XML文件:
@[package:]dimen/dimension_name
语法:
res/values/dimens.xml
:
Java代码引用:
XML资源文件中引用:
四、ID
用XML格式定义的资源唯一ID。对应<item>元素里指定的名称,Android开发工具在R.java类中创建一个唯一的整数,可用来标识应用程序资源(比如:UI布局中的一个View),或者在应用程序代码中被用作一个唯一的整数(比如:对话框的ID或一个返回值)。
注意:请记住ID资源不代表一个实际的资源项,而只是一个可与其他资源绑定的唯一ID,或是一个用于应用程序代码中的唯一整数。
文件位置:res/values/filename.xml。文件名任意。
引用:
Java类:
R.id.name
XML文件:
@[package:]id/name
语法:
<item>:定义一个唯一的ID。不含值,只含属性。
属性:
Type:必须是“id”。
name:String类型。ID的唯一名称。
res/values/ids.xml
文件:
以下代码将“button_ok”作为Button控件的ID:
五、Integer
文件位置:res/values/filename.xml。
文件名任意。
引用:
Java类:
R.integer.integer_name
XML文件:
@[package:]integer/integer_name
语法:
res/values/integers.xml
:Java文件中调用:
<span class="typ" style="color: rgb(102, 0, 102);">Resources</span><span class="pln" style="color: rgb(0, 0, 0);"> res </span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="pln" style="color: rgb(0, 0, 0);"> </span><code style="line-height: 14px;"><a target=_blank target="_blank" href="http://developer.android.com/reference/android/content/Context.html#getResources()" style="color: rgb(37, 138, 175); text-decoration: none;"><span class="pln" style="color: rgb(0, 0, 0);">getResources</span><span class="pun" style="color: rgb(102, 102, 0);">()</span></a></code><span class="pun" style="color: rgb(102, 102, 0);">;</span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="kwd" style="color: rgb(0, 0, 136);">int</span><span class="pln" style="color: rgb(0, 0, 0);"> maxSpeed </span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="pln" style="color: rgb(0, 0, 0);"> res</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><code style="line-height: 14px;"><a target=_blank target="_blank" href="http://developer.android.com/reference/android/content/res/Resources.html#getInteger(int)" style="color: rgb(37, 138, 175); text-decoration: none;"><span class="pln" style="color: rgb(0, 0, 0);">getInteger</span></a></code><span class="pun" style="color: rgb(102, 102, 0);">(</span><span class="pln" style="color: rgb(0, 0, 0);">R</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln" style="color: rgb(0, 0, 0);">integer</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln" style="color: rgb(0, 0, 0);">max_speed</span><span class="pun" style="color: rgb(102, 102, 0);">);</span>
六、Integer Array
整数数组。
文件位置:res/values/filename.xml。文件名任意。
引用(同String Array):
Java类:
R.array.integer_array_name
XML文件:
@[package:]array.integer_array_name
语法:
<span class="pun" style="color: rgb(102, 102, 0);"><?</span><span class="pln" style="color: rgb(0, 0, 0);">xml version</span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="str" style="color: rgb(136, 0, 0);">"1.0"</span><span class="pln" style="color: rgb(0, 0, 0);"> encoding</span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="str" style="color: rgb(136, 0, 0);">"utf-8"</span><span class="pun" style="color: rgb(102, 102, 0);">?></span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="tag" style="color: rgb(0, 0, 136);"><</span><a target=_blank target="_blank" href="http://developer.android.com/guide/topics/resources/more-resources.html#integer-array-resources-element" style="color: rgb(37, 138, 175); text-decoration: none;"><span class="tag" style="color: rgb(0, 0, 136);">resources</span></a><span class="tag" style="color: rgb(0, 0, 136);">></span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="tag" style="color: rgb(0, 0, 136);"><</span><a target=_blank target="_blank" href="http://developer.android.com/guide/topics/resources/more-resources.html#integer-array-element" style="color: rgb(37, 138, 175); text-decoration: none;"><span class="tag" style="color: rgb(0, 0, 136);">integer-array</span></a><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="atn" style="color: rgb(136, 34, 136);">name</span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="atv" style="color: rgb(136, 0, 0);">"</span><em><span class="atv" style="color: rgb(136, 0, 0);">integer_array_name</span></em><span class="atv" style="color: rgb(136, 0, 0);">"</span><span class="tag" style="color: rgb(0, 0, 136);">></span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="tag" style="color: rgb(0, 0, 136);"><</span><a target=_blank target="_blank" href="http://developer.android.com/guide/topics/resources/more-resources.html#integer-array-item-element" style="color: rgb(37, 138, 175); text-decoration: none;"><span class="tag" style="color: rgb(0, 0, 136);">item</span></a><span class="tag" style="color: rgb(0, 0, 136);">></span><em><span class="pln" style="color: rgb(0, 0, 0);">integer</span></em><span class="tag" style="color: rgb(0, 0, 136);"></item></span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="tag" style="color: rgb(0, 0, 136);"></integer-array></span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="tag" style="color: rgb(0, 0, 136);"></resources></span>例子:
res/values/integers.xml
:
<span class="pun" style="color: rgb(102, 102, 0);"></span><?xml version="1.0" encoding="utf-8"?> <resources> <integer name="max_speed">75</integer> <integer-array name="integer-array"> <item>10</item> <item>20</item> <item>@integer/max_speed</item><span style="white-space: pre;"> </span><!-- 引用其他integer资源 --> </integer-array> </resources>Java中调用:
<span class="typ" style="color: rgb(102, 0, 102);">Resources</span><span class="pln" style="color: rgb(0, 0, 0);"> res </span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="pln" style="color: rgb(0, 0, 0);"> </span><code style="line-height: 14px;"><a target=_blank target="_blank" href="http://developer.android.com/reference/android/content/Context.html#getResources()" style="color: rgb(37, 138, 175); text-decoration: none;"><span class="pln" style="color: rgb(0, 0, 0);">getResources</span><span class="pun" style="color: rgb(102, 102, 0);">()</span></a></code><span class="pun" style="color: rgb(102, 102, 0);">;</span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="kwd" style="color: rgb(0, 0, 136);">int</span><span class="pun" style="color: rgb(102, 102, 0);">[]</span><span class="pln" style="color: rgb(0, 0, 0);"> bits </span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="pln" style="color: rgb(0, 0, 0);"> res</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><code style="line-height: 14px;"><a target=_blank target="_blank" href="http://developer.android.com/reference/android/content/res/Resources.html#getIntArray(int)" style="color: rgb(37, 138, 175); text-decoration: none;"><span class="pln" style="color: rgb(0, 0, 0);">getIntArray</span></a></code><span class="pun" style="color: rgb(102, 102, 0);">(</span><span class="pln" style="color: rgb(0, 0, 0);">R</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln" style="color: rgb(0, 0, 0);">array</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln" style="color: rgb(0, 0, 0);">bits</span><span class="pun" style="color: rgb(102, 102, 0);">);</span>
七、Typed Array
用于创建其它资源(除了String和Integer,字符串有String Array,整数有Integer Array)的数组,比如drawable。注意数组元素不必是同一类型的,可以创建多种资源组成的数组。但必须小心处理数组内不同的数据类型,利用TypedArray类的get...()方法正确地读取每个数据项。
文件位置:res/values/filename.xml。文件名任意。
编译后的资源数据类型:
指向TypedArray的指针。
引用(同String Array、Integer Array):
Java类:
R.array.array_name
XML文件:
@[package:]array.array_name
语法:
<span class="pun" style="color: rgb(102, 102, 0);"><?</span><span class="pln" style="color: rgb(0, 0, 0);">xml version</span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="str" style="color: rgb(136, 0, 0);">"1.0"</span><span class="pln" style="color: rgb(0, 0, 0);"> encoding</span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="str" style="color: rgb(136, 0, 0);">"utf-8"</span><span class="pun" style="color: rgb(102, 102, 0);">?></span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="tag" style="color: rgb(0, 0, 136);"><</span><a target=_blank target="_blank" href="http://developer.android.com/guide/topics/resources/more-resources.html#array-resources-element" style="color: rgb(37, 138, 175); text-decoration: none;"><span class="tag" style="color: rgb(0, 0, 136);">resources</span></a><span class="tag" style="color: rgb(0, 0, 136);">></span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="tag" style="color: rgb(0, 0, 136);"><</span><a target=_blank target="_blank" href="http://developer.android.com/guide/topics/resources/more-resources.html#array-element" style="color: rgb(37, 138, 175); text-decoration: none;"><span class="tag" style="color: rgb(0, 0, 136);">array</span></a><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="atn" style="color: rgb(136, 34, 136);">name</span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="atv" style="color: rgb(136, 0, 0);">"typed</span><em><span class="atv" style="color: rgb(136, 0, 0);">_array_name</span></em><span class="atv" style="color: rgb(136, 0, 0);">"</span><span class="tag" style="color: rgb(0, 0, 136);">></span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="tag" style="color: rgb(0, 0, 136);"><</span><a target=_blank target="_blank" href="http://developer.android.com/guide/topics/resources/more-resources.html#array-item-element" style="color: rgb(37, 138, 175); text-decoration: none;"><span class="tag" style="color: rgb(0, 0, 136);">item</span></a><span class="tag" style="color: rgb(0, 0, 136);">></span><em><span class="pln" style="color: rgb(0, 0, 0);">resource</span></em><span class="tag" style="color: rgb(0, 0, 136);"></item></span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="tag" style="color: rgb(0, 0, 136);"></array></span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="tag" style="color: rgb(0, 0, 136);"></resources></span>例子,
res/values/arrays.xml
文件:
<span class="pun" style="color: rgb(102, 102, 0);"><?</span><span class="pln" style="color: rgb(0, 0, 0);">xml version</span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="str" style="color: rgb(136, 0, 0);">"1.0"</span><span class="pln" style="color: rgb(0, 0, 0);"> encoding</span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="str" style="color: rgb(136, 0, 0);">"utf-8"</span><span class="pun" style="color: rgb(102, 102, 0);">?></span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="tag" style="color: rgb(0, 0, 136);"><resources></span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="tag" style="color: rgb(0, 0, 136);"><array</span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="atn" style="color: rgb(136, 34, 136);">name</span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="atv" style="color: rgb(136, 0, 0);">"icons"</span><span class="tag" style="color: rgb(0, 0, 136);">></span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="tag" style="color: rgb(0, 0, 136);"><item></span><span class="pln" style="color: rgb(0, 0, 0);">@drawable/home</span><span class="tag" style="color: rgb(0, 0, 136);"></item></span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="tag" style="color: rgb(0, 0, 136);"><item></span><span class="pln" style="color: rgb(0, 0, 0);">@drawable/settings</span><span class="tag" style="color: rgb(0, 0, 136);"></item></span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="tag" style="color: rgb(0, 0, 136);"><item></span><span class="pln" style="color: rgb(0, 0, 0);">@drawable/logout</span><span class="tag" style="color: rgb(0, 0, 136);"></item></span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="tag" style="color: rgb(0, 0, 136);"></array></span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="tag" style="color: rgb(0, 0, 136);"><array</span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="atn" style="color: rgb(136, 34, 136);">name</span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="atv" style="color: rgb(136, 0, 0);">"colors"</span><span class="tag" style="color: rgb(0, 0, 136);">></span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="tag" style="color: rgb(0, 0, 136);"><item></span><span class="pln" style="color: rgb(0, 0, 0);">#FFFF0000</span><span class="tag" style="color: rgb(0, 0, 136);"></item></span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="tag" style="color: rgb(0, 0, 136);"><item></span><span class="pln" style="color: rgb(0, 0, 0);">#FF00FF00</span><span class="tag" style="color: rgb(0, 0, 136);"></item></span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="tag" style="color: rgb(0, 0, 136);"><item></span><span class="pln" style="color: rgb(0, 0, 0);">#FF0000FF</span><span class="tag" style="color: rgb(0, 0, 136);"></item></span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="tag" style="color: rgb(0, 0, 136);"></array></span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="tag" style="color: rgb(0, 0, 136);"></resources></span>以下程序代码取出每个数组并读取第一个数组元素:
<span class="typ" style="color: rgb(102, 0, 102);">Resources</span><span class="pln" style="color: rgb(0, 0, 0);"> res </span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="pln" style="color: rgb(0, 0, 0);"> </span><code style="line-height: 14px;"><a target=_blank target="_blank" href="http://developer.android.com/reference/android/content/Context.html#getResources()" style="color: rgb(37, 138, 175); text-decoration: none;"><span class="pln" style="color: rgb(0, 0, 0);">getResources</span><span class="pun" style="color: rgb(102, 102, 0);">()</span></a></code><span class="pun" style="color: rgb(102, 102, 0);">;</span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="typ" style="color: rgb(102, 0, 102);">TypedArray</span><span class="pln" style="color: rgb(0, 0, 0);"> icons </span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="pln" style="color: rgb(0, 0, 0);"> res</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><code style="line-height: 14px;"><a target=_blank target="_blank" href="http://developer.android.com/reference/android/content/res/Resources.html#obtainTypedArray(int)" style="color: rgb(37, 138, 175); text-decoration: none;"><span class="pln" style="color: rgb(0, 0, 0);">obtainTypedArray</span></a></code><span class="pun" style="color: rgb(102, 102, 0);">(</span><span class="pln" style="color: rgb(0, 0, 0);">R</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln" style="color: rgb(0, 0, 0);">array</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln" style="color: rgb(0, 0, 0);">icons</span><span class="pun" style="color: rgb(102, 102, 0);">);</span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="typ" style="color: rgb(102, 0, 102);">Drawable</span><span class="pln" style="color: rgb(0, 0, 0);"> drawable </span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="pln" style="color: rgb(0, 0, 0);"> icons</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><code style="line-height: 14px;"><a target=_blank target="_blank" href="http://developer.android.com/reference/android/content/res/TypedArray.html#getDrawable(int)" style="color: rgb(37, 138, 175); text-decoration: none;"><span class="pln" style="color: rgb(0, 0, 0);">getDrawable</span></a></code><span class="pun" style="color: rgb(102, 102, 0);">(</span><span class="lit" style="color: rgb(0, 102, 102);">0</span><span class="pun" style="color: rgb(102, 102, 0);">);</span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="typ" style="color: rgb(102, 0, 102);">TypedArray</span><span class="pln" style="color: rgb(0, 0, 0);"> colors </span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="pln" style="color: rgb(0, 0, 0);"> res</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><code style="line-height: 14px;"><a target=_blank target="_blank" href="http://developer.android.com/reference/android/content/res/Resources.html#obtainTypedArray(int)" style="color: rgb(37, 138, 175); text-decoration: none;"><span class="pln" style="color: rgb(0, 0, 0);">obtainTypedArray</span></a></code><span class="pun" style="color: rgb(102, 102, 0);">(</span><span class="pln" style="color: rgb(0, 0, 0);">R</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln" style="color: rgb(0, 0, 0);">array</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln" style="color: rgb(0, 0, 0);">colors</span><span class="pun" style="color: rgb(102, 102, 0);">);</span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="kwd" style="color: rgb(0, 0, 136);">int</span><span class="pln" style="color: rgb(0, 0, 0);"> color </span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="pln" style="color: rgb(0, 0, 0);"> colors</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><code style="line-height: 14px;"><a target=_blank target="_blank" href="http://developer.android.com/reference/android/content/res/TypedArray.html#getColor(int, int)" style="color: rgb(37, 138, 175); text-decoration: none;"><span class="pln" style="color: rgb(0, 0, 0);">getColor</span></a></code><span class="pun" style="color: rgb(102, 102, 0);">(</span><span class="lit" style="color: rgb(0, 102, 102);">0</span><span class="pun" style="color: rgb(102, 102, 0);">,</span><span class="lit" style="color: rgb(0, 102, 102);">0</span><span class="pun" style="color: rgb(102, 102, 0);">);</span>
测试以上资源的源码:测试Demo
官网原文:http://developer.android.com/guide/topics/resources/more-resources.html
参考:http://www.cnblogs.com/over140/archive/2011/10/24/2222255.html