Android应用资源---其他资源类型(More Types)(一)
本文档介绍Android系统其他可定义在代码外部的资源,主要包括:
Bool型资源:
定义布尔值的XML资源。
Color型资源:
定义颜色值的XML资源(十六进制颜色值)。
Dimension型资源:
定义尺寸的XML资源(带有尺寸单位)。
ID型资源:
给应用程序资源和组件提供唯一标识的XML资源。
Integer型资源:
定义整数值的XML资源。
Integer Array型资源:
定义整数数组的XML资源。
Typed Array型资源:
提供了TypeArray对象的XML资源(如drawble资源数组)。
Bool型资源
在XML中定义布尔值。
注意:布尔值是一种简单的资源,使用name属性提供的值来引用这个资源。如,可以把布尔值资源与其他简单资源组合在一个XML文件的<resources>元素下。
文件位置(FILE LOCATION):
res/values/filename.xml
文件名是任意的。<bool>元素的name属性值被用作资源ID。
资源应用(RESOURCE REFERENCE):
在Java代码中:R.bool.bool_name;
在XML中:@[package:]bool/bool_name。
语法(STNTAX):
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool
name="bool_name"
>[true | false]</bool>
</resources>
元素(ELEMENTS):
<resources>
必须的,它必须是根节点。没有属性。
<bool>
定义了一个布尔值:true或false
属性(ATTRIBUTES):
name
字符串值,给布尔值定义一个名称,这个名称被用作资源ID。
例子(EXAMPLE):
下面的XML被保存在res/values-small/bools.xml中:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool
name="screen_small">true</bool>
<bool
name="adjust_view_bounds">true</bool>
</resources>
应用程序代码中使用下面方法获取布尔值:
Resources res = getResources()
;
boolean screenIsSmall = res.getBoolean
(R.bool.screen_small);
布局XML中使用布尔值资源的方法:
<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通道来指定的。可以在接受十六进制的任何地方使用颜色资源。还能够把颜色资源用于XML中所期望使用的可绘制资源(如,android:drawable=”@color/green”)。
颜色值始终是用“#”字符开头的,后面依次是Alpha-Red-Green-Blue信息,具体格式如下:
#RGB
#ARGB
#RRGGBB
#AARRGGBB
注意:颜色资源是一种简单的资源,使用name属性提供的值来引用资源。如,能够把颜色资源跟其他的简单资源组合在一个XML文件的<resources>元素中。
文件位置(FILE LOCATION):
res/values/colors.xml
文件名是任意的,<color>元素的name属性值会被用作资源ID。
资源引用(RESOURCE REFERENCE):
在Java代码中:R.color.color_name
在XML中:@[package:]color/color_name
语法(SYNTAX):
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color
name="color_name"
>hex_color</color>
</resources>
元素(ELEMENTS):
<resources>
必须的,它必须是根节点,没有属性。
<color>
用上面介绍的十六进制格式来表示一个颜色值。
属性(ATTRIBUTES):
name
字符串值。给颜色资源指定一个名称,这个name属性的值会被用作资源的ID。
例子(EXAMPLE):
以下XML被保存在res/values/colors.xml中:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color
name="opaque_red">#f00</color>
<color
name="translucent_red">#80ff0000</color>
</resources>
以下是应用程序代码获取颜色资源的方法:
Resources res = getResources()
;
int color = res.getColor
(R.color.opaque_red);
以下是XML布局中使用颜色资源的方法:
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="@color/translucent_red"
android:text="Hello"/>