您的位置:首页 > 移动开发 > Android开发

Android应用资源---其他资源类型(More Types)(二)

2012-04-30 11:01 417 查看
Dimension型资源

定义在XML中的尺寸值。它是一个带有尺寸单位的数字。例如:10px、2in、5sp。以下是Android系统支持的尺寸单位:

dp

密度无关的像素,它是基于屏幕的物理密度的一种抽象单位。相对与160dpi(每英寸的点数)的屏幕,每1dp大致等于1px。当运行在高密度的屏幕上时,用于描画1dp的像素数会适应屏幕的dpi的要求来进行放大。同样,当在低密度屏幕上时,1dp的像素也会被缩小。从dp到pixel的转换比率会随着屏幕的密度来改变,但是不一定成正比。使用dp作为单位(代替px单位)是一个中简单的解决方案,它会让布局中View对象针对不同的屏幕密度来进行正确的调整。换句话说,它提供了UI元素的实际尺寸在不同设备上的一致性。

sp

尺寸无关的像素,它有点像dp单位,但是它也会根据用户的字体尺寸选择来进行缩放。它被推荐用于指定字体的尺寸,以便文字能够针对屏幕的密度和用户的选择来调整。

pt

点数,基于屏幕的物理尺寸,确定1/72英寸中的点数。

px

像素,跟屏幕上的实际像素相对应。不推荐使用这个尺寸单位,因为实际上要适应各种不同的设备,每个设备每英寸的像素数量都可能不同,并且屏幕上可能会有更多或更少的总的可用的像素。

mm

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

in

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

注意:尺寸资源是一种简单的资源,可以使用其name属性提供的值来引用这种资源。如,能够把尺寸资源跟其他简单资源组合在一个XML文件的<resources>元素中。

文件位置(FILE LOCATION):

res/values/filename.xml

文件名是任意的,<dimen>元素的name属性值会被用于资源ID。

资源引用(RESOURCE REFERENCE):

在Java代码中:R.dimen.dimension_name

在XML中:@[package:]dimen/dimension_name

语法(SYNTAX):

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

<resources>

<dimen

name="dimension_name"

>dimension</dimen>

</resources>

元素(ELEMENTS):

<resources>

必须的,它必须是根节点。没有属性。

<dimen>

它定义一个尺寸值,用带有尺寸单位(dp、sp、pt、px、mm、in)的浮点数来表示。

属性(ATTRIBUTES):

name

字符串值,它定义了这个尺寸的名称,属性值被用作资源的ID。

例子(EXAMPLE):

下面的XML保存在res/values/dimens.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>

以下是应用程序代码获取尺寸资源的方法:

Resources res =
getResources()
;

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

以下是在布局XML中设置尺寸属性的方法:

<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属性提供的值来引用资源。如,能够把ID资源与其他简单资源组合到一个XML文件的<resources>元素下。还有,要记住的是:ID资源不引用实际的资源项目,它只是一个能够跟其他资源绑定唯一ID,或是程序中使用的唯一整数。

文件位置(FILE LOCATION):

res/values/filename.xml

文件名是任意的。

资源引用(RESOURCE REFERENCE):

在Java代码中:R.id.name

在XML中:@[package:]id/name

语法(SYNTAX):

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

<resources>

<item

type="id"

name="id_name"/>

</resources>

元素(ELEMENTS):

<resources>

必须的,它必须是根节点,没有属性。

<item>

定义一个唯一ID,不需要值。

属性(ATTRIBUTES):

type:必须设置为”id”

name:字符串值,给ID定义一个唯一的名称。

例子(EXAMPLE):

以下XML被保存在res/values/ids.xml文件中:

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

<resources>

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

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

</resources>

以下是把button_ok的ID资源设定给布局中的一个Button控件的方法:

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

style="@style/button_style"
/>

要注意的是:android:id属性的值在引用ID资源时没有包含“+”号,因为这个ID已经存在了,它在ids.xml文件中已经被定义了。(当使用“+”号指定资源ID时,如:android:id=”@+id/name”,则意味着这个ID不存在,应该给这个资源创建一个新的ID。)

在下面的示例中,代码使用中使用了“dialog_exit”ID来唯一标识一个对话框:

showDialog
(R.id.dialog_exit);

以下代码通过比较“dialog_exit”ID来创建对话框:

protectedDialogonCreateDialog(int)(int
id){

Dialog dialog;

switch(id){

case
R.id.dialog_exit:

...

break;

default:

dialog =null;

}

return dialog;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: