更多资源类型

本页定义了其它一些具体的资源类型,包括:

Bool

存放布尔值的XML资源。

Color

存放颜色值的XML资源(十六进制颜色)。

Dimension

存放数量值的XML资源(带计量单位)。

ID

为应用程序的资源和控件提供唯一标识的XML资源。

Integer

存放整数值的XML资源。

Integer Array

提供整数数组的XML资源。

Typed Array

提供TypedArray(用于Drawable对象数组)的XML资源。

Bool

用XML格式定义的布尔值。

注意:bool是简单类型资源,是用名称(name)属性(而非XML文件名)来直接引用的。因此,在一个XML文件里,可以把bool资源和其他简单类型资源一起放入一个<resources>元素下。

文件位置:

res/values/filename.xml

文件名可随意指定。<bool>元素的名称name将被用作资源ID。

资源引用:

Java代码:R.bool.bool_name

XML代码:@[package:]bool/bool_name

语法:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool
name="bool_name"
>[true | false]</bool>
</resources>

元素:

<resources>

必填项。必须是根节点。

无属性。

<bool>

布尔值:true或false。

属性:

name

String类型。布尔值的名称,用作资源ID。

示例:

存放在res/values-small/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>

以下应用程序代码取出bool值:

Resources res = getResources();

boolean screenIsSmall = res.getBoolean(R.bool.screen_small);

以下布局(layout)XML将bool资源用于属性:

<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通道指定颜色值。可以在任何接受十六进制颜色值的地方使用color资源。还能在XML里用到drawable资源时使用color 资源(比如:android:drawable="@color/green")。

颜色值总是以(#)字符开头,后面跟着Alpha-红-绿-蓝信息,格式如下之一:

·       #RGB

·       #ARGB

·       #RRGGBB

·       #AARRGGBB

注意:color是简单类型资源,是用名称(name)属性(而非XML文件名)来直接引用的。因此,在一个XML文件里,可以把color资源和其他简单类型资源一起放入一个<resources>元素下。

文件位置:

res/values/colors.xml

文件名可随意指定。<color>元素的名称name将被用作资源ID。

资源引用:

Java代码:R.color.color_name

XML代码:@[package:]color/color_name

语法:

<?xml version="1.0" encoding="utf-8"?>

<resources>

<color

name="color_name"

>hex_color</color>

</resources>

元素:

<resources>

必填项。必须是根节点。

无属性。

<color>

十六进制表示的颜色值。如上所述。

属性:

name

String类型。颜色的名称,用作资源ID。

示例:

存放在res/values/colors.xml的XML文件:

<?xml version="1.0" encoding="utf-8"?>

<resources>

<color name="opaque_red">#f00</color>

<color name="translucent_red">#80ff0000</color>

</resources>

以下应用程序代码取出color资源:

Resources res = getResources();

int color = res.getColor(R.color.opaque_red);

以下布局(layout)XML将color资源用于属性:

<TextView

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:textColor="@color/translucent_red"

android:text="Hello"/>

Dimension

用XML格式定义的数量值。数量值是用数字后跟度量单位来指定的。例如:10px, 2in, 5sp。Android支持以下度量单位:

dp

分辨率无关的像素(Pixel)单位,一种基于屏幕的物理(像素)分辨率的抽象单位。此单位基于一个160 dpi(每英寸点数)的屏幕,所以160dp常常是1英寸且与屏幕像素分辨率无关。dp和像素的比率会随着屏幕密度而变化,但不一定成正比。建议用于在layout里指定View尺寸 ,这样UI在不同屏幕上能自动缩放而显示出相同的大小。(“dip”和“dp”同义,编译器都可接受,虽然“dp”更近似于“sp”。)

sp

缩放无关的像素单位,类似于dp,但还会根据用户的字体大小设置进行缩放。建议用于指定字体大小,这样根据屏幕分辨率和用户设置都能自动调整。

pt

点,基于屏幕实际尺寸,对应1/72英寸。

px

像素,与屏幕实际像素一致。这是个不建议使用的单位,因为在不同设备上的实际表现会差异很大,每种设备每英寸的像素数可能不同,屏幕上的总像素数亦可能更多或更少。

mm

毫米,基于屏幕物理尺寸。

in

英寸,基于屏幕物理尺寸。

注意:dimension是简单类型资源,是用名称(name)属性(而非XML文件名)来直接引用的。因此,在一个XML文件里,可以把dimension资源和其他简单类型资源一起放入一个<resources>元素下。

文件位置:

res/values/filename.xml

文件名可随意指定。<dimen>元素的名称name将被用作资源ID。

资源引用:

Java代码:R.dimen.dimension_name

XML代码:@[package:]dimen/dimension_name

语法:

<?xml version="1.0" encoding="utf-8"?>

<resources>

<dimen

name="dimension_name"

>dimension</dimen>

</resources>

元素:

<resources>

必填项。必须是根节点。

无属性。

<dimen>

度量值,用浮点数表示,后跟一个计量单位(dp、sp、pt、px、mm、in),如上所述。

属性:

name

String类型。度量的名称,用作资源ID。

示例:

存放在res/values/dimens.xml的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>

以下应用程序代码取出dimension资源:

Resources res = getResources();

float fontSize = res.getDimension(R.dimen.font_size);

以下layout XML将dimensions用于属性:

<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布局中的一个View),或者在应用程序代码中被用作一个唯一的整数(比如:对话框的ID或一个返回值)。

注意:ID是简单类型资源,是用名称(name)属性(而非XML文件名)来直接引用的。因此,在一个XML文件里,可以把ID资源和其他简单类型资源一起放入一个<resources>元素下。而且,请记住ID资源不代表一个实际的资源项,而只是一个可与其他资源绑定的唯一ID,或是一个用于应用程序代码中的唯一整数。

文件位置:

res/values/filename.xml
文件名可随意指定。

资源引用:

Java代码:R.id.name

XML代码:@[package:]id/name

语法:

<?xml version="1.0" encoding="utf-8"?>

<resources>

<item

type="id"

name="id_name" />

</resources>

元素:

<resources>

必填项。必须是根节点。

无属性。

<item>

定义一个唯一的ID。不含值,只含属性。

属性:

Type

必须是“id”。

name

String类型。ID的唯一名称。

示例:

存放在res/values/ids.xml的XML文件:

<?xml version="1.0" encoding="utf-8"?>

<resources>

<item type="id" name="button_ok" />

<item type="id" name="dialog_exit" />

</resources>

以下layout段将“button_ok”用于Button控件ID:

<Button android:id="@id/button_ok"

style="@style/button_style" />

注意android:id的值:ID引用里不含加号“+”了,因为这个ID已经在上面的ids.xml中定义过了。(如果XML资源里用加号指定一个ID—类似格式android:id="@+id/name"—那就意味着“name”命名的ID还不存在并需要创建它。)

以下代码段示例用“dialog_exit”ID作为对话框的唯一标识:

showDialog(R.id.dialog_exit);

在同一个应用程序里,在生成对话框时“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格式定义的整数资源。

注意:integer是简单类型资源,是用名称(name)属性(而非XML文件名)来直接引用的。因此,在一个XML文件里,可以把integer资源和其他简单类型资源一起放入一个<resources>元素下。

文件位置:

res/values/filename.xml

文件名可随意指定。<integer>元素的名称name将用作资源ID。

资源引用:

Java代码:R.integer.integer_name

XML代码:@[package:]integer/integer_name

语法:

<?xml version="1.0" encoding="utf-8"?>

<resources>

<integer

name="integer_name"

>integer</integer>

</resources>

元素:

<resources>

必填项。必须是根节点。

无属性。

<integer>

一个整数。

属性:

name

String类型。整数的名称。用作资源ID。

示例:

存放在res/values/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);

Integer Array

用XML格式定义的整数数组。

注意: integer array是简单类型资源,是用名称(name)属性(而非XML文件名)来直接引用的。因此,在一个XML文件里,可以把integer array资源和其他简单类型资源一起放入一个<resources>元素下。

文件位置:

res/values/filename.xml

文件名可随意指定。<integer-array>元素的名称name将用作资源ID。

编译后的资源数据类型:

指向整数数组的指针。

资源引用:

Java代码:R.array.string_array_name

XML代码:@[package:]array.integer_array_name

语法:

<?xml version="1.0" encoding="utf-8"?>

<resources>

<integer-array

name="integer_array_name">

<item

>integer</item>

</integer-array>

</resources>

元素:

<resources>

必填项。必须是根节点。

无属性。

<integer-array>

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

属性:

name

String类型。数组的名称。作为资源ID用于引用数组。

<item>

整数。可以是指向另一个整数资源的引用。必须是<integer-array> 的子元素。

无属性。

示例:

存放在res/values/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>

取出integer array的应用程序代码:

Resources res = getResources();

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

 

Typed Array

用XML格式定义的TypedArray。用于创建其它资源的数组,比如drawable。注意数组元素不必是同一类型的,可以创建多种资源组成的数组。但必须小心处理数组内不同的数据类型,利用TypedArray的get...()属性正确地读取每个数据项。

注意:typed array是简单类型资源,是用名称(name)属性(而非XML文件名)来直接引用的。因此,在一个XML文件里,可以把typed array资源和其他简单类型资源一起放入一个<resources>元素下。

文件位置:

res/values/filename.xml
文件名可随意指定。<array>元素的名称name将用作资源ID。

编译后的资源数据类型:

指向TypedArray的指针。

资源引用:

Java代码:R.array.array_name

XML代码:@[package:]array.array_name

语法:

<?xml version="1.0" encoding="utf-8"?>

<resources>

<array

name="integer_array_name">

<item>resource</item>

</array>

</resources>

元素:

<resources>

必填项。必须是根节点。

无属性。

<array>

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

属性:

android:name

String类型。数组的名称。作为资源ID用于引用数组。

<item>

资源。可以是指向一个资源的引用,或是一个简单数据类型。必须是<array>的子元素。

无属性。

示例:

存放在res/values/ arrays.xml的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.icons);

int color = colors.getColor(0,0);

android 各种xml资源的引用方式的更多相关文章

  1. android操作XML的几种方式(转)

    XML作为一种业界公认的数据交换格式,在各个平台与语言之上,都有广泛使用和实现.其标准型,可靠性,安全性......毋庸置疑.在android平台上,我们要想实现数据存储和数据交换,经常会使用到xml ...

  2. android ids.xml资源的使用

    ids.xml文件例子: XML file saved at res/values/ids.xml: 使用方式: 一:

  3. Android处理XML的三种方式

    http://www.cnblogs.com/zhangdongzi/archive/2011/04/14/2016434.html http://blog.csdn.net/zzp16/articl ...

  4. Android应用程序资源的编译和打包过程分析

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8744683 我们知道,在一个APK文件中,除了 ...

  5. (转载)Android xml资源文件中@、@android:type、@*、?、@+引用写法含义以及区别

    原帖地址:http://blog.csdn.net/zfrong/article/details/7332545 Android xml资源文件中@.@android:type.@*.?.@+引用写法 ...

  6. Android的xml/assets/raw资源使用具体解释

    一.assets/xml/raw资源介绍 1.assets资源文件夹:assets文件夹下存放的资源代表应用无法直接訪问的原生资源,这些文件将原封不动的存储到设备上,不会被编译为二进制形式,訪问方式是 ...

  7. Android xml资源文件中@、@android:type、@*、?、@+含义和区别

    一.@代表引用资源 1.引用自定义资源.格式:@[package:]type/name android:text="@string/hello" 2.引用系统资源.格式:@andr ...

  8. Android多Module下的Application引用方式

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 Android开发时,Application一般都放在APP中,Lib模块如果想引用Application则需要在APP中进行传递, ...

  9. Android使用xml文件中的array资源

    Android中有种使用数组的非常简单的用法,在xml文件中获取. 创建数组资源 在value目录下创建arrays.xml文件 然后在arrays.xml文件中使用<string-array& ...

随机推荐

  1. 几大最短路径算法比较(Floyd & Dijkstra & Bellman-Ford & SPFA)

    几个最短路径算法的比较:Floyd 求多源.无负权边(此处错误?应该可以有负权边)的最短路.用矩阵记录图.时效性较差,时间复杂度O(V^3).       Floyd-Warshall算法(Floyd ...

  2. 【转载】变更MySql数据存储路径的方法

    1.在mysql安装目录下找到my.ini文件,更改#Path to the database root datadir="希望存放数据的地址" 2.将默认存放路径(一般为&quo ...

  3. verilog断言(SVA:systemverlog assertion)语法 ---- 转载

    转载自:http://blog.sina.com.cn/s/blog_4c270c730101f6mw.html 作者:白栎旸     断言assertion被放在verilog设计中,方便在仿真时查 ...

  4. Birt导出Excel图片

    有一段时间没有使用Birt了,最近突然之间发现新版的Birt可以支持导出Excel附带图片.我目前下载的是Birt 4.3版本的,导出图片的也只能在Excel 2007下面能够实现,2003的xls格 ...

  5. 思考方式--SMART原则

    如果你对项目管理.系统架构有兴趣,请加微信订阅号"softjg",加入这个PM.架构师的大家庭 万事开头于你目标的设定,如果开始走错了,那么后面的路将会更加的错误,甚至于更加的努力 ...

  6. Raspberry pi之树莓派基础建设-2

    1.ssh pi与本地文件传输   一般ssh是默认会支持sftp的,所以你可以考虑用filezila之类的ftp工具远程连接登陆 2.我考虑到要拍照,前提是你得有个摄像头,usb直接插上去 3.py ...

  7. js table的笔记,实现添加 td,实现搜索功能

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...

  8. php使用ajax导出CSV或者EXCEl(thinkphp)方法

    首先我强烈推荐看到这篇文章的你将导出文件设置为csv格式的文件 实际测试导出csv文件的速度是excel文件的10几倍左右 首先我先介绍csv文件的导出的方法: 如果你单纯是在数据导出界面上通过用户点 ...

  9. 移动web开发实践-css3(1)盒模型display:-webkit-box;的使用

    提到移动布局不得不提到盒模型display:-webkit-box;这个属性,在移动布局中浮动已经不在重要,相反自适应成为主要的需求,所以display:-webkit-box;变得尤为重要. box ...

  10. LR12.53—第3课:重播Vuser脚本

    第3课:重播Vuser脚本 在前面的教训,你记录了一组典型的用户行为,并准备重播脚本. 重播脚本之前,您可以配置脚本的运行时设置,它定义了Vuser的行为. 注:记录与基于Web的协议的地方WebTo ...