一个在属性(或者资源)里提供的数值可以被指向一个具体的资源。这常常被使用在布局文件中用于字符串(可以被本地化) 以及图片(存在于其他文件中的),通过一个引用可以是包括颜色和整数的任何资源类型。
例如,如果有 颜色资源, 我们可以将文本的颜色值 写在布局文件中,颜色值可以从资源文件里取得:
<?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>