ITEEDU

资源引用

一个在属性(或者资源)里提供的数值可以被指向一个具体的资源。这常常被使用在布局文件中用于字符串(可以被本地化) 以及图片(存在于其他文件中的),通过一个引用可以是包括颜色和整数的任何资源类型。

例如,如果有 颜色资源, 我们可以将文本的颜色值 写在布局文件中,颜色值可以从资源文件里取得:

<?xml version="1.0" encoding="utf-8"?>
<EditText id="text"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    android:textColor="@color/opaque_red"
    android:text="Hello, World!" />

注意这里使用'@'的前缀是说明资源引用 -- 后面的文本是资源的名字 @[package:]type/name. 这里我们不需要指定包,因为我们在我们自己的包里引用资源。 为了指定一个系统资源,你需要这样写:

<?xml version="1.0" encoding="utf-8"?>
<EditText id="text"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    android:textColor="@android:color/opaque_red"
    android:text="Hello, World!" />

另外一个例子,当你在布局文件里使用字符串,你必须做资源引用,这样字符串才能被使用:

<?xml version="1.0" encoding="utf-8"?>
<EditText id="text"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    android:textColor="@android:color/opaque_red"
    android:text="@string/hello_world" />

这段代码也能被用来创建资源间引用。例如,我们能这样创建图像资源:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <drawable id="my_background">@android:drawable/theme2_background</drawable>
</resources>