现在的位置: 首页 > 综合 > 正文

Resources Types – More Types

2013年10月14日 ⁄ 综合 ⁄ 共 3845字 ⁄ 字号 评论关闭

Resources Types – More Types

译者署名:
呆呆大虾

译者微博:http://weibo.com/popapa

版本:Android 4.0 r1

原文

http://developer.android.com/guide/topics/resources/more-resources.html

更多资源类型

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

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>

布尔值:truefalse

属性:

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);

以下布局(layoutXMLbool资源用于属性:

<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.xmlXML文件:

<?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);

以下布局(layoutXMLcolor资源用于属性:

<TextView

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:textColor="@color/translucent_red"

    android:text="Hello"/>

Dimension

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

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>

度量值,用浮点数表示,后跟一个计量单位(dpspptpxmmin),如上所述。

属性:

name

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

示例:

存放在res/values/dimens.xmlXML文件:

<?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 XMLdimensions用于属性:

<TextView

    android:layout_height="@dimen/textview_height"

    android:layout_width="@dimen/textview_width"

    android:textSize="@dimen/font_size"/>

ID

抱歉!评论已关闭.