天天看点

android 如何引用资源文件,Android XML 文件中引用资源的方法

在 XML 文件中引用资源的语法如下:

1) @[package:]type/name使用我们自己包下的资源可以省略 package。

在 xml 文件中,如 main.xml 以及AndroidMainfest.xml 文件中通过“@drawable/icon”的方式获取。

其中“@”代表的是R.java 类,“drawable”代表 R.java 中的静态内部类“drawable”,“/icon”代表静态内部类“drawable”中的静态属性“icon”。

而该属性可以指向 res 目录下的“drawable-*dpi”中的 icon.png 图标。其他类型的文件也比较类似 。

凡是在R文件中定义的资源都可以通过“ @Static_inner_classes_name/resourse_name”的方式获取。如“@id/button”,“@string/app_name”。

2) 如果访问的是 Android 系统中带的文件,则要添上包名“android:”。

如android:textColor=”@android:color/red” 。

3) 引用主题属性

另外一种资源值允许你引用当前主题中的属性的值。这个属性值只能在样式资源和 XML 属

性中使用;它允许你通过将它们改变为当前主题提供的标准变化来改变 UI 元素的外观,而不

是提供具体的值。

android:textColor=”?android:textDisabledColor”

注意,这和资源引用非常类似,除了我们使用一个”?”前缀代替了”@”。当你使用这个标记

时,你就提供了属性资源的名称,它将会在主题中被查找–因为资源工具知道需要的属性资

源 , 所以你不需要显示声明这个类型 ( 如 果 声 明 , 其 形 式 就

是?android:attr/android:textDisabledColor)。

除了使用这个资源的标识符来查询主题中的值代替原始的资源,其命名语法和”@”形式一致:?[namespace:]type/name,这里类型

可选。

“@+id/string_name”表达式 顺便说一下,在布局文件当中我们需要为一些组件添加 Id 属性作为标示,可以使 用如下的表达式“@+id/string_name” 其中“+”表示在 R.java 的名为 id 的内部类中添加一条记录。如”@+id/button”的含义是在 R.java 文件中的 id 这个静态内部类添加一条常量名为 button,该常量就是该资源的标识符。如果 id 这个静态内部类不存在,则会先生成它。 通过该方式生成的资源标识符,仍然可以以“@id/string_name”的方式引用。