Android应用资源---其他资源类型(More Types)(三)

整数型资源

XML中定义的整数。

注意:整数是一个简单的资源,用name属性提供的值来引用资源。如,能够把整数型资源跟其他简单的资源组合在一个XML文件的<resources>元素下。

文件位置(FILE LOCATION):

res/values/filename.xml

文件名是任意的,<integer>元素的name属性值被用于资源ID

资源引用(RESOURCE REFERENCE):

Java代码中:R.integer.integer_name

XML中:@[package:]integer/integer_name

语法(SYNTAX):

<?xml version="1.0" encoding="utf-8"?>
<resources>
   
<integer
       
name="integer_name"
       
>integer</integer>
</resources>

元素(ELEMENTS):

<resources>

必须的,它必须是根节点,没有属性。

<integer>

它声明一个整数。

属性(ATTRIBUTES):

name

字符串值,它给整数定义了一个名称,它的值被用于资源ID

例子(EXAMPLE):

以下XML保存在res/values/integers.xml文件中:

<?xml version="1.0" encoding="utf-8"?>
<resources>
   
<integer name="max_speed">75</integer>
   
<integer name="min_speed">5</integer>
</resources>

以下是应用程序代码获取整数的方法:

Resources res =getResources();
int maxSpeed = res.getInteger(R.integer.max_speed);

Integer Array型资源:

XML中定义一个整数数组。

注意:整数数组是种简单资源,用name属性提供的值来应用资源。如,能够把整数数组跟其他类型的简单资源一起组合到一个XML文件的<resources>元素下。

文件位置(FILE LOCATION):

res/values/filename.xml

文件名是任意的。<integer-array>元素的name属性值被用作资源ID

被编译资源的数据类型(COMPILED RESOURCE DATATYPE):

资源指向一个整数数组。

资源应用(RESOURCE REFERENCE):

Java代码中:R.array.integer_array_name

XML中:@[package:]array.integer_array_name

语法(SYNTAX):

<?xml version="1.0" encoding="utf-8"?>
<resources>
   
<integer-array
       
name="integer_array_name">
       
<item
           
>integer</item>
   
</integer-array>
</resources>

元素(ELEMENTS):

<resources>

必须的,它必须是根节点,没有属性。

<string-array>

它定义一个整数数组,包含一个或多个<item>子元素。

属性(ATTRIBUTES):

android:name

字符串值,给数组定义一个名称。这个名称被用作资源ID

<item>

定义一个整数。它的值能够是另一个整数资源的引用。它必须是<integer-array>元素的子元素,没有属性。

例子(EXAMPLE):

以下XML定义被保存在res/values/integers.xml文件中:

<?xml version="1.0" encoding="utf-8"?>
<resources>
   
<integer-array name="bits">
       
<item>4</item>
       
<item>8</item>
       
<item>16</item>
       
<item>32</item>
   
</integer-array>
</resources>

以下是应用程序中代码获取整数数组的方法:

Resources res =getResources();
int[] bits = res.getIntArray(R.array.bits);

Typed Array型资源

XML中定义一个TypeArray型的资源。可以使用这种资源类型来创建其他类型资源的数组,如可绘制资源。要注意的是,这个数组不需要是相同类型的,因此可以创建一个混合资源类型的数组,但是必须要知道数组中资源的数据类型,以便能够用TypedArrayget…()方法来正确的获取每一个项目。

注意:类型数组一种简单的资源,使用name属性中提供的值来引用资源。如,能够把类型数组资源跟其他类型的简单资源组合在一个XML文件的<resources>元素下:

文件位置(FILE LOCATION):

res/values/filename.xml

文件名是任意的。<array>元素的name属性值被用于资源ID

被编译资源的数据类型(COMPILED RESOURCE DATATYPE):

资源指向一个TypedArray对象。

资源应用(RESOURCE REFERENCE):

Java代码中:R.array.array_name

XML中:@[package:]array.array_name

语法(SYNTAX):

<?xml version="1.0" encoding="utf-8"?>
<resources>
   
<array
       
name="integer_array_name">
       
<item>resource</item>
   
</array>
</resources>

元素(ELEMENTS):

<resources>

必须的,它必须是根节点,没有属性。

<array>

它定义了一个数组,包含了一个或多个<item>元素。

属性(ATTRIBUTES):

android:name

字符串值,它指定了这个数组的名称,名称的值被用作资源的ID

<item>

它声明一个普通的资源,它的值能够是一个资源的引用或是一个简单的数据类型,它必须是<array>元素的子元素。它没有属性。

例子(EXAMPLE):

以下XML被保存在res/values/arrays.xml文件中:

<?xml version="1.0" encoding="utf-8"?>
<resources>
   
<array name="icons">
       
<item>@drawable/home</item>
       
<item>@drawable/settings</item>
       
<item>@drawable/logout</item>
   
</array>
   
<array name="colors">
       
<item>#FFFF0000</item>
       
<item>#FF00FF00</item>
       
<item>#FF0000FF</item>
   
</array>
</resources>

 

以下是应用程序代码获取类型数组资源的方法:

Resources res =getResources();
TypedArray icons = res.obtainTypedArray(R.array.icons);
Drawable drawable = icons.getDrawable(0);

TypedArray colors = res.obtainTypedArray(R.array.colors);
int color = colors.getColor(0,0);

 

posted @ 2012-04-30 15:23  andriod2012  阅读(1687)  评论(0编辑  收藏  举报