Android API Guides---More Resource Types

更多资源类型
此页面定义更多类型你可以外部化,包括资源:
Bool
携带一个布尔值XML资源。
Color
承载颜色值(十六进制的颜色)XML资源。
Dimension
携带一维值(用计量单位)的XML资源。
ID
XML资源提供用于应用程序资源和组件的唯一标识符。
Integer
携带一个整数值XML资源。
Integer Array
XML资源提供整数数组。
Typed Array
XML资源,提供一个TypedArray(你可以使用可绘数组)。

Bool

在XML中定义一个布尔值。
注意:布尔是使用name属性(而不是XML文件的名称)提供的值引用一个简单的资源。因此,您可以布尔资源与其他资源的简单一个XML文件中结合起来,在一个<resources>元素。
文件位置:
res/values/ filename .xml
文件名是任意的。在<布尔>元素的名称将被用作资源ID。
资源引用:
In Java:  R.bool.bool_name
In XML:  @[package:]bool/bool_name

句法:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <bool
        name="bool_name"
        >[true | false]</bool>
</resources>
ELEMENTS:
<resources>
需要。这必须是根节点。
无属性。
<bool>
一个布尔值:true或false。
属性:
name
串。一种用于布尔值名称。这将被用作资源ID。
例:
在保存RES /值小/ 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>
此应用程序代码检索布尔:

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预期(例如,机器人:可绘制=“@色/绿”)。


该值总是以磅(#)字符开头,然后接着在下面的格式之一阿尔法 - 红 - 绿 - 蓝信息:


#RGB
#ARGB
#RRGGBB
#AARRGGBB
注意:颜色是使用在名称属性(未XML文件的名称)提供的值引用的一个简单的资源。因此,您可以在一个XML文件中与其他简单的整合资源颜色资源,在一个<resources>元素。


文件位置:
RES/价值/ colors.xml
文件名是任意的。 <色彩>元素的名称将用作资源ID。
资源引用:
In Java:  R.color.color_name
In XML:  @[package:]color/color_name
句法:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color
        name="color_name"
        >hex_color</color>
</resources>
ELEMENTS:
<resources>
需要。这必须是根节点。
无属性。


<color>
一种彩色十六进制表示,如上所述。
属性:


name
串。一种颜色名称。这将被用作资源ID。
例:
XML file saved at  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"/>

Dimension




在XML定义的标注值。维度与一个数字,后跟度量单位指定。例如:10px的,2英寸,5SP。下列度量单位Android支持:


dp
密度独立像素 - 即是基于屏幕的物理密度的抽象单元。这些单位是相对于160 DPI(每英寸点数)的屏幕,其上1DP大致相等为1px。当一个较高密度屏幕上运行,用于绘制1DP像素的数量是由一个因子相应于屏幕的dpi的按比例放大。同样,较低的密度在屏幕上时,用于1DP像素的数量按比例缩小。 DP到像素的比例将与屏幕密度改变,但不一定成正比。使用dp单位(而不是PX单位)是一个简单的解决方案,以使在布局视图尺寸适当调整为不同的屏幕密度。换句话说,它提供了在不同的装置上的UI元素的真实世界的尺寸的一致性。
sp
比例无关像素 - 这是像DP单元,但它也由用户的字体大小偏好缩放。它建议在指定的字体大小时使用此单元中,所以它们将被调整为两个屏幕密度和用户的偏好。
pt
点 - 根据屏幕的物理尺寸1/72英寸。
px
像素 - 对应于屏幕上的实际像素。不建议这些单位因为实际的表示可以在不同设备有所不同;每个设备可以具有不同数量的每英寸的像素,并且可以具有在画面上可用的更多或更少的总像素。
mm
毫米 - 基于屏幕的物理尺寸。
in
英寸 - 基于屏幕的物理尺寸。
注意:尺寸是使用在名称属性(未XML文件的名称)提供的值引用的一个简单的资源。因此,您可以维度的资源与其他资源的简单一个XML文件中结合起来,在一个<resources>元素。


文件位置:
res/values/ filename .xml
文件名是任意的。在<扪>元素的名称将被用作资源ID。
资源引用:
In Java:  R.dimen.dimension_name
In XML:  @[package:]dimen/dimension_name
句法:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen
        name="dimension_name"
        >dimension</dimen>
</resources>
ELEMENTS:
<resources>
需要。这必须是根节点。
无属性。


<dimen>
维,通过浮法表示,随后的测量单位(DP,SP,点,像素毫米,),如上所述。
属性:


name
串。一种维度名称。这将被用作资源ID。
例:
XML file saved at  res/values/dimens.xml :

<?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>
此应用程序代码检索维度:

Resources res = getResources();
float fontSize = res.getDimension(R.dimen.font_size);
这种布局XML适用尺寸属性:

<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布局视图)或用于应用程序代码的使用(例如,如针对对话或结果的代码的ID)的唯一整数。


注意:一个ID是使用在名称属性(未XML文件的名称)提供的值引用的一个简单的资源。因此,您可以标识资源与其他资源的简单一个XML文件中结合起来,在一个<resources>元素。此外,请记住一个ID资源不引用实际的资源项目;它只是一个唯一的ID,你可以连接到其他资源或应用程序中的一个唯一的整数使用。


文件位置:
RES/价值/ filename.xml中
文件名是任意的。
资源引用:
In Java:  R.id.name
In XML:  @[package:]id/name
句法:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <item
        type="id"
        name="id_name" />
</resources>
ELEMENTS:
<resources>
需要。这必须是根节点。
无属性。


<item>
定义一个唯一的ID。没有值,只有属性。
属性:


type
必须是“ID”。
name
串。的唯一名称标识。
例:
在保存RES/价值/ ids.xml XML文件:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <item type="id" name="button_ok" />
    <item type="id" name="dialog_exit" />
</resources>
Then, this layout snippet uses the "button_ok" ID for a Button widget:

<Button android:id="@id/button_ok"
    style="@style/button_style" />
请注意,在android:值id不包括在ID参考的加号,因为该ID已经存在,如ids.xml例如上述定义。 (当使用加号,格式android的指定ID到一个XML资源:ID=“@+ ID /名称” - 它意味着“名”ID不存在,应创建)
作为另一个例子,下面的代码段使用的“对话退出”ID作为针对对话的唯一标识符:

showDialog(R.id.dialog_exit);
在相同的应用程序,创建一个对话的时候,“对话退出”的ID进行比较:

protected Dialog onCreateDialog(int)(int id) {
    Dialog dialog;
    switch(id) {
    case R.id.dialog_exit:
        ...
        break;
    default:
        dialog = null;
    }
    return dialog;
}

Integer


在XML中定义的整数。
不:一个整数是使用在名称属性(未XML文件的名称)提供的值引用的一个简单的资源。因此,您可以在整数的资源与其他资源的简单一个XML文件中结合起来,在一个<resources>元素。
文件位置:
RES/价值/ filename.xml中
文件名是任意的。在<整数>元素的名称将被用作资源ID。
资源引用:
In Java:  R.integer.integer_name
In XML:  @[package:]integer/integer_name
句法:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <integer
        name="integer_name"
        >integer</integer>
</resources>
ELEMENTS:
<resources>
需要。这必须是根节点。
无属性。


<integer>
一个整数。
属性:


name
串。一种整数名称。这将被用作资源ID。
例:
在保存RES/价值/ integers.xml 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);
整数数组
在XML定义整型数组。
不:一个整数数组是使用在名称属性(未XML文件的名称)提供的值引用的一个简单的资源。因此,您可以在一个XML文件中与其他简单的资源整合整数数组的资源,在一个<resources>元素。
文件位置:
RES/价值/ filename.xml中
文件名是任意的。在<整数阵列>元素的名称将被用作资源ID。
编译的资源数据类型:
资源指向整数数组。
资源引用:
在Java:R.array.integer_array_name
在XML:@ [包:] array.integer_array_name
句法:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <integer-array
        name="integer_array_name">
        <item
            >integer</item>
    </integer-array>
</resources>
ELEMENTS:
<resources>
需要。这必须是根节点。
无属性。
<integer-array>
定义一个整数数组。包含一个或多个子女的<item>元素。
属性:
android:name
串。一种数组名。这个名称将被作为资源ID,以引用的阵列。
<item>
一个整数。该值可以是另一个整数资源的参考。必须是一个<整数数组>元素的子元素。
无属性。
例:
在保存RES/价值/ integers.xml 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>
This application code retrieves the integer array:

Resources res = getResources();
int[] bits = res.getIntArray(R.array.bits);
类型数组
在XML定义的TypedArray。您可以使用它来创建其他资源,如可绘制的数组。请注意,是均匀阵列不是必需的,这样你就可以创建混合的资源类型的数组,但你必须知道什么,其中的数据类型数组中,这样就可以正确地获得与TypedArray每个项目获得 ...() 方法。
注意:类型数组是使用在名称属性(未XML文件的名称)提供的值引用的一个简单的资源。因此,您可以在一个XML文件中与其他简单的资源整合类型数组的资源,在一个<resources>元素。
文件位置:
RES/价值/ filename.xml中
文件名是任意的。在<数组>元素的名称将被用作资源ID。
编译的资源数据类型:
资源指针TypedArray。
资源引用:
在Java:R.array.array名
在XML:@ [包:] array.array_name
句法:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <array
        name="integer_array_name">
        <item>resource</item>
    </array>
</resources>
ELEMENTS:
<resources>
需要。这必须是根节点。
无属性。


<array>
定义的阵列。包含一个或多个子女的<item>元素。
属性:


android:name
串。一种数组名。这个名称将被作为资源ID,以引用的阵列。
<item>
通用资源。该值可以是一个资源或简单数据类型的引用。必须是一个<数组>元素的子元素。
无属性。


例:
XML file saved at  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);

你可能感兴趣的:(java,android,api,sdk,阅读)