Android复习(二)应用资源——>更多类型-创新互联

更多资源类型

本页面定义了更多类型的可具体化的资源,包括:Android复习(二)应用资源
——>更多类型
Bool
带有布尔值的 XML 资源。
颜色
带有颜色值(十六进制颜色)的 XML 资源。
尺寸
带有尺寸值(包含度量单位)的 XML 资源。
ID
提供应用资源和组件的唯一标识符的 XML 资源。
整数
带有整数值的 XML 资源。
整数数组
提供整数数组的 XML 资源。
类型化数组
提供 TypedArray(可用于可绘制对象数组)的 XML 资源。

Bool

在 XML 中定义的布尔值。

成都创新互联公司于2013年开始,先为富县等服务建站,富县等地企业,进行企业商务咨询服务。为富县企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

注意:Bool 是使用 name 属性中提供的值(而不是 XML 文件的名称)引用的简单资源。因此,您可以在一个 XML 文件中将 bool 资源与其他简单资源合并到一个  元素下。

文件位置:
res/values/filename.xml
文件名可以任意设置。 元素的 name 将用作资源 ID。
资源引用:
在 Java 中:R.bool.bool_name
在 XML 中:@[package:]bool/bool_name
语法:
[true | false]
 
元素:
必需。该元素必须是根节点。

没有属性。

布尔值:true 或 false

属性:

name
字符串。Bool 值的名称。该名称将用作资源 ID。
示例:
保存在 res/values-small/bools.xml 的 XML 文件: true true
 

以下应用代码会检索布尔值:

java代码: Resources res = getResources(); boolean screenIsSmall = res.getBoolean(R.bool.screen_small); kotlin代码: val screenIsSmall: Boolean = resources.getBoolean(R.bool.screen_small)  

以下布局 XML 会将该布尔值应用到属性:

颜色

在 XML 中定义的颜色值。颜色使用 RGB 值和 alpha 通道指定。您可以在接受十六进制颜色值的任何地方使用颜色资源。当 XML 中需要可绘制资源时,您也可以使用颜色资源(例如,android:drawable="@color/green")。

该值始终以井号 (#) 字符开头,后跟以下某种格式的“透明度、红、绿、蓝”(Alpha-Red-Green-Blue) 信息:

  • #RGB
  • #ARGB
  • #RRGGBB
  • #AARRGGBB

注意:颜色是使用 name 属性中提供的值(而不是 XML 文件的名称)引用的简单资源。因此,您可以在一个 XML 文件中将颜色资源与其他简单资源合并到一个  元素下。

文件位置:
res/values/colors.xml
该文件名可以任意设置。 元素的 name 将用作资源 ID。
资源引用:
在 Java 中:R.color.color_name
在 XML 中:@[package:]color/color_name
语法:
hex_color  
元素:
必需。该元素必须是根节点。

没有属性。

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

属性:

name
字符串。颜色的名称。该名称将用作资源 ID。
示例:
保存在 res/values/colors.xml 的 XML 文件: #f00 #80ff0000  

以下应用代码会检索颜色资源:

java代码: Resources res = getResources(); int color = res.getColor(R.color.opaque_red); kotlin代码: val color: Int = resources.getColor(R.color.opaque_red)  

以下布局 XML 会将该颜色应用到属性:


 

尺寸

在 XML 中定义的尺寸值。尺寸由数字后跟度量单位来指定。例如:10px、2in、5sp。Android 支持以下度量单位:

dp
密度无关像素 - 基于屏幕物理密度的抽象单位。这些单位相对于 160 dpi(每英寸点数)屏幕确立,在该屏幕上 1dp 大致等于 1px。在更高密度的屏幕上运行时,用于绘制 1dp 的像素数量会根据屏幕 dpi 按照适当的系数增加。同样,在更低密度的屏幕上,用于绘制 1dp 的像素数量会相应减少。dp 对像素的比率会随着屏幕密度的变化而变化,但不一定成正比。要使布局中的视图尺寸根据不同的屏幕密度正确调整大小,一种简单的解决办法就是使用 dp 单位(而不是 px 单位)。换句话说,它可在不同设备上提供一致的界面元素大小。
sp
缩放无关像素 - 这和 dp 单位类似,但它也会根据用户的字体大小偏好设置进行缩放。建议您在指定字体大小时使用此单位,以便字体大小会根据屏幕密度和用户偏好设置进行调整。
pt
点 - 1/72 英寸,基于屏幕的物理尺寸,假设屏幕密度为 72dpi。
px
像素 - 对应于屏幕上的实际像素数。建议不要使用这种度量单位,因为不同设备的实际呈现效果可能不同;每台设备的每英寸像素数可能不同,屏幕上的总像素数也可能有差异。
mm
毫米 - 基于屏幕的物理尺寸。
in
英寸 - 基于屏幕的物理尺寸。

注意:尺寸是使用 name 属性中提供的值(而不是 XML 文件的名称)引用的简单资源。因此,您可以在一个 XML 文件中将尺寸资源与其他简单资源合并到一个  元素下。

文件位置:
res/values/filename.xml
该文件名可以任意设置。 元素的 name 将用作资源 ID。
资源引用:
在 Java 中:R.dimen.dimension_name
在 XML 中:@[package:]dimen/dimension_name
语法:
dimension
 
元素:
必需。该元素必须是根节点。

没有属性。

定义一个尺寸,由浮点数后跟度量单位(dp、sp、pt、px、mm、in)表示,如上所述。

属性:

name
字符串。尺寸的名称。该名称将用作资源 ID。
示例:
保存在 res/values/dimens.xml 的 XML 文件: 25dp 150dp 30dp 16sp
 

以下应用代码会检索尺寸:

java代码: Resources res = getResources(); float fontSize = res.getDimension(R.dimen.font_size); kotlin代码: val fontSize: Float = resources.getDimension(R.dimen.font_size)  

以下布局 XML 会将尺寸应用到属性:

 

ID

在 XML 中定义的唯一资源 ID。Android 开发者工具可使用您在  元素中提供的名称,在您项目的 R.java 类中创建唯一的整数,供您用作应用资源(例如,界面布局中的 View)的标识符,或创建唯一的整数,供您在应用代码中使用(例如,作为对话框的 ID 或结果代码)。

注意:ID 是使用 name 属性中提供的值(而不是 XML 文件的名称)引用的简单资源。因此,您可以在一个 XML 文件中将 ID 资源与其他简单资源合并到一个  元素下。另外请注意,ID 资源并不引用实际的资源项;它只是一个唯一 ID,您可以将其附加到其他资源,或者在应用中作为唯一整数使用。

文件位置:
res/values/filename.xml
该文件名可以任意设置。
资源引用:
在 Java 中:R.id.name
在 XML 中:@[package:]id/name
语法:

 
元素:
必需。该元素必须是根节点。

没有属性。

定义唯一 ID。不设置值,只有属性。

属性:

type
必须为“id”。
name
字符串。ID 的唯一名称。
示例:

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


 

然后,以下布局代码段会将“button_ok”ID 应用到按钮微件:

整数

在 XML 中定义的整数。

注意:整数是使用 name 属性中提供的值(而不是 XML 文件的名称)引用的简单资源。因此,您可以在一个 XML 文件中将整数资源与其他简单资源合并到一个  元素下。

文件位置:
res/values/filename.xml
该文件名可以任意设置。 元素的 name 将用作资源 ID。
资源引用:
在 Java 中:R.integer.integer_name
在 XML 中:@[package:]integer/integer_name
语法:
integer
 
元素:
必需。该元素必须是根节点。

没有属性。

一个整数。

属性:

name
字符串。该整数的名称。该名称将用作资源 ID。
示例:

保存在 res/values/integers.xml 的 XML 文件:

75 5  

以下应用代码会检索整数:

java代码: Resources res = getResources(); int maxSpeed = res.getInteger(R.integer.max_speed); kotlin代码: val maxSpeed: Int = resources.getInteger(R.integer.max_speed)

整数数组

在 XML 中定义的整数数组。

注意:整数数组是使用 name 属性中提供的值(而不是 XML 文件的名称)引用的简单资源。因此,您可以在一个 XML 文件中将整数数组资源与其他简单资源合并到一个  元素下。

文件位置:
res/values/filename.xml
该文件名可以任意设置。 元素的 name 将用作资源 ID。
编译后的资源数据类型:
指向整数数组的资源指针。
资源引用:
在 Java 中:R.array.integer_array_name
在 XML 中:@[package:]array.integer_array_name
语法:
integer
 
元素:
必需。该元素必须是根节点。

没有属性。

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

属性:

android:name
字符串。数组的名称。此名称将用作引用数组的资源 ID。
一个整数。该值可以是对另一个整数资源的引用。必须是  元素的子元素。

没有属性。

示例:
保存在 res/values/integers.xml 的 XML 文件: 4 8 16 32
 

以下应用代码会检索整数数组:

java代码: Resources res = getResources(); int[] bits = res.getIntArray(R.array.bits); kotlin代码: val bits: IntArray = resources.getIntArray(R.array.bits)  

类型化数组

在 XML 中定义的 TypedArray。您可以使用这种资源创建其他资源(例如可绘制对象)的数组。请注意,此类数组不要求所含的资源具有相同的类型,因此您可以创建混合资源类型的数组,但必须知道数组中有哪些数据类型及其位置,以便可以使用 TypedArray 的 get...() 方法正确获取每一项数据。

注意:类型化数组是使用 name 属性中提供的值(而不是 XML 文件的名称)引用的简单资源。因此,您可以在一个 XML 文件中将类型化数组资源与其他简单资源合并到一个  元素下。

文件位置:
res/values/filename.xml
该文件名可以任意设置。 元素的 name 将用作资源 ID。
编译后的资源数据类型:
指向 TypedArray 的资源指针。
资源引用:
在 Java 中:R.array.array_name
在 XML 中:@[package:]array.array_name
语法:
resource
 
元素:
必需。该元素必须是根节点。

没有属性。

定义一个数组。包含一个或多个  子元素。

属性:

android:name
字符串。数组的名称。此名称将用作引用数组的资源 ID。
通用资源。该值可以是对资源或简单数据类型的引用。必须是  元素的子元素。

没有属性。

示例:
保存在 res/values/arrays.xml 的 XML 文件: @drawable/home @drawable/settings @drawable/logout #FFFF0000 #FF00FF00 #FF0000FF
 

以下应用代码会检索每个数组,然后获取每个数组中的第一个条目:

java代码: Resources res = getResources(); TypedArray icons = res.obtainTypedArray(R.array.icons); Drawable drawable = icons.getDrawable(0); TypedArray colors = res.obtainTypedArray(R.array.colors); int color = colors.getColor(0,0); kotlin代码: val icons: TypedArray = resources.obtainTypedArray(R.array.icons) val drawable: Drawable = icons.getDrawable(0) val colors: TypedArray = resources.obtainTypedArray(R.array.colors) val color: Int = colors.getColor(0,0)

文章题目:Android复习(二)应用资源——>更多类型-创新互联
本文网址:http://myzitong.com/article/cdidpg.html