Values
Values
简单的values包含字符串,颜色,尺寸和字符串数组或整数数组。所有的值都存在/res/values文件夹下的XML文件中。在每一个XML文件中,你可以使用标签为每个要存储的值指明类型,如下面的XML文件的例子所示:
<?xml version=”1.0” encoding=”utf-8”?>
<resources>
<string name=”app_name”>To Do List</string>
<color name=”app_background”>#FF0000FF</color>
<dimen name=”default_border”>5px</dimen>
<array name=”string_array”>
<item>Item 1</item>
<item>Item 2</item>
<item>Item 3</item>
</array>
<array name=”integer_array”>
<item>3</item>
<item>2</item>
<item>1</item>
</array>
</resources>
这个例子包含所有的简单值类型。按照一般的习惯,不同类型的资源存放在不同的文件中;例如,/res/values/string.xml只包含字符串资源。
接下来的章节将详细描述定义资源时的一些选项。
字符串
字符串具体化有助于保持应用程序的一致性,且更加容易的创建资源的本地版本。
字符串资源使用<string/>标签进行指定,如下面的XML片段所示:
<string name=”stop_message”>Stop.</string>
Android支持简单的文本样式,所以,你可以使用HTML标签<b>,<i>和<u>去为字符串应用粗体、斜体或下划线,如下面的例子所示:
<string name=”stop_message”><b>Stop.</b></string>
你还可以使用资源字符串作为String.format方法的输入参数。但是,String.format方法不支持上述的文本样式。为了能应用样式到字符串上,你必须得放弃HTML标签,如下所示:
<string name=”stop_message”><b>Stop</b>. %1$s</string>
在代码中,使用Html.fromHtml方法再转换成样式化的字符序列:
String rString = getString(R.string.stop_message);
String fString = String.format(rString, “Collaborate and listen.”);
CharSequence styledString = Html.fromHtml(fString);
颜色
使用颜色标签来定义新的颜色资源。指定颜色值时,使用“#”符号,后面紧跟着alpha通道值(可选)、R、G、B,RGB可以是1位或2位16进制数。如下所示:
❑ #RGB
❑ #RRGGBB
❑ #ARGB
❑ #ARRGGBB
下面的例子给出了怎样指定全不透的蓝色和部分透明的绿色:
<color name=”opaque_blue”>#00F</color>
<color name=”transparent_green”>#7700FF00</color>
尺寸
尺寸经常会在style和layout资源中引用到,它们对于创建layout常量(如边界和字体高度等)非常有用。
指定尺寸资源,需要使用<dimen/>标签,并设定尺寸值,后面紧跟着尺度的标识:
❑ px 屏幕像素
❑ in 物理英寸
❑ pt 物理点
❑ mm 毫米
❑ dp 密度无关的像素(相对于160dpi屏幕)
❑ sp 比例无关的像素
这些可供选择的尺度让你在定义尺寸时,不仅可以使用绝对尺度,还可以使用相对尺度。这些能有助于在不同的设备上不同的屏幕分辨率和密度情况下简化放缩。
下面的XML片段给出了标准边界与大字体大小的尺寸设置:
<dimen name=”standard_border”>5px</dimen>
<dimen name=”large_font_size”>16sp</dimen>