更多资源类型

本页面定义了更多类型的可具体化的资源,包括:

Bool
带有布尔值的 XML 资源。
颜色
带有颜色值(十六进制颜色)的 XML 资源。
尺寸
带有尺寸值(包含度量单位)的 XML 资源。
ID
提供应用资源和组件的唯一标识符的 XML 资源。
整数
带有整数值的 XML 资源。
整数数组
提供整数数组的 XML 资源。
类型化数组
提供 TypedArray(可用于可绘制对象数组)的 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
字符串。Bool 值的名称。该名称将用作资源 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>

  


   
 

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

java代码:

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

  

 

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

   
<ImageView
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:src="@drawable/logo"
android:adjustViewBounds="@bool/adjust_view_bounds" />

  

 

颜色

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

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

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

注意:颜色是使用 name 属性中提供的值(而不是 XML 文件的名称)引用的简单资源。因此,您可以在一个 XML 文件中将颜色资源与其他简单资源合并到一个 <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
字符串。颜色的名称。该名称将用作资源 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>

  

 

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

java代码:

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

  

 

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

   
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="@color/translucent_red"
android:text="Hello"/>

  


   
 

尺寸

在 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 文件中将尺寸资源与其他简单资源合并到一个 <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
字符串。尺寸的名称。该名称将用作资源 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>

  


   
 

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

java代码:

    Resources res = getResources();
float fontSize = res.getDimension(R.dimen.font_size); kotlin代码: val fontSize: Float = resources.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。Android 开发者工具可使用您在 <item> 元素中提供的名称,在您项目的 R.java 类中创建唯一的整数,供您用作应用资源(例如,界面布局中的 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
字符串。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>

  


   
 

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

 
  <Button android:id="@id/button_ok"
style="@style/button_style" />

  


   
 

请注意,android:id 值不会在 ID 引用中包含加号,因为此 ID 已存在,如上面的 ids.xml 示例中所定义。(如果使用加号以 android:id="@+id/name" 格式指定 XML 资源的 ID,则表示“name”ID 不存在,应该创建它。)

再比如,以下代码段使用“dialog_exit”ID 作为对话框的唯一标识符:

    showDialog(R.id.dialog_exit)

  


   
 

在同一应用中,在创建对话框时会比较“dialog_exit”ID:

java代码:

    protected Dialog onCreateDialog(int id) {
Dialog dialog;
switch(id) {
case R.id.dialog_exit:
...
break;
default:
dialog = null;
}
return dialog;
} kotlin代码: override fun onCreateDialog(id: Int): Dialog? {
return when(id) {
R.id.dialog_exit -> {
...
}
else -> {
null
}
}
}

  


   
 

整数

在 XML 中定义的整数。

注意:整数是使用 name 属性中提供的值(而不是 XML 文件的名称)引用的简单资源。因此,您可以在一个 XML 文件中将整数资源与其他简单资源合并到一个 <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
字符串。该整数的名称。该名称将用作资源 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>

  

 

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

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 文件中将整数数组资源与其他简单资源合并到一个 <resources> 元素下。

文件位置:
res/values/filename.xml
该文件名可以任意设置。<integer-array> 元素的 name 将用作资源 ID。
编译后的资源数据类型:
指向整数数组的资源指针。
资源引用:
在 Java 中:R.array.integer_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> 子元素。

属性:

android:name
字符串。数组的名称。此名称将用作引用数组的资源 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>

  


   
 

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

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 文件中将类型化数组资源与其他简单资源合并到一个 <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
字符串。数组的名称。此名称将用作引用数组的资源 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>

  


   
 

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

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复习(二)应用资源——>更多类型的更多相关文章

  1. Android使用应用程序资源(、颜色数组、尺寸、弦、布尔、整型)

    一.Android资源分类详细解释   1.Android资源类别 Android中的资源分为两大类 : 可直接訪问的资源, 无法直接訪问的原生资源; -- 直接訪问资源 : 这些资源能够使用 R. ...

  2. Android进阶(二十)AndroidAPP开发问题汇总(四)

    · Android进阶(二十)AndroidAPP开发问题汇总(四) android:layout_width和android:width的区别 基中的android:layout_width和and ...

  3. Android生成二维码--保存和分享二维码图片

    之前写过生成自定义二维码的两篇文章:<Android生成自定义二维码><Android生成二维码–拍照或从相册选取图片>,下面就介绍一下Android应用内如何保存以及分享二维 ...

  4. HandlerMethodArgumentResolver(二):Map参数类型和固定参数类型【享学Spring MVC】

    每篇一句 黄金的导电性最好,为什么电脑主板还是要用铜? 飞机最快,为什么还有人做火车? 清华大学最好,为什么还有人去普通学校? 因为资源都是有限的,我们现实生活中必须兼顾成本与产出的平衡 前言 上文 ...

  5. android学习笔记32——资源

    Android应用资源 资源分类: 1.无法直接访问的原生资源,保存于asset目录下 2.可通过R资源清单类访问的资源,保存于res目录下 资源的类型以及存储方式 android要求在res目录下用 ...

  6. MFC六大核心机制之二:运行时类型识别(RTTI)

    上一节讲的是MFC六大核心机制之一:MFC程序的初始化,本节继续讲解MFC六大核心机制之二:运行时类型识别(RTTI). typeid运算子 运行时类型识别(RTTI)即是程序执行过程中知道某个对象属 ...

  7. 【转】Android LCD(二):LCD常用接口原理篇

    关键词:android LCD TFT TTL(RGB)  LVDS  EDP MIPI  TTL-LVDS  TTL-EDP 平台信息:内核:linux2.6/linux3.0系统:android/ ...

  8. Android进阶(二十八)上下文菜单ContextMenu使用案例

    上下文菜单ContextMenu使用案例 前言 回顾之前的应用程序,发现之前创建的选项菜单无法显示了.按照正常逻辑来说,左图中在"商品信息"一栏中应该存在选项菜单,用户可进行分享等 ...

  9. Android字符串,颜色,尺寸资源的使用

    字符串.颜色.尺寸资源文件这三种文件位于res文件夹的values文件夹中,名称分别为strings.xml , colors.xml , dimens.xml下面是例子,首先来看字符串资源文件str ...

  10. 浅谈Kotlin(二):基本类型、基本语法、代码风格

    浅谈Kotlin(一):简介及Android Studio中配置 浅谈Kotlin(二):基本类型.基本语法.代码风格 浅谈Kotlin(三):类 浅谈Kotlin(四):控制流 通过上面的文章,在A ...

随机推荐

  1. 【Mybatis-Plus】02 Spring整合,基本CRUD

    创建非骨架普通Maven工程: 引入Spring & MybatisPlus的依赖坐标及其它持久层依赖: <properties> <spring.version>5. ...

  2. tmux开启鼠标模式

    在tmux的配置文件中进行配置: vim ~/.tmux.conf set -g mouse on

  3. tensorflow 数据集对象(tf.data)的使用( tf.data.Dataset 、tf.data.TextLineDataset 、 tf.data.TFRecordDataset ) 示例

    tensorflow   使用数据集(tf.data)的方法对数据集进行操纵. 1.    对   数组(内存向量)  进行操纵 : import tensorflow as tf input_dat ...

  4. VUE learn

    Vue .js 的官方文档中是这样介绍它的. 简单小巧的核心,渐进式技术拢,足以应付任何规模的应用. 简单小巧是指 vue.js 压缩后大小仅有 17k .所谓渐进式(Progressive ),就是 ...

  5. SMU Autumn 2023 Round 3(Div.1)

    SMU Autumn 2023 Round 3(Div.1) A. Find The Array 要满足"b数组内任意一个元素满足可以被数组两边的元素整除"这个条件,我们很容易想到 ...

  6. redis集群主从之读写分离

    redis集群主从之读写分离 1.集群部署 这里就不详细赘述如何部署主从集群了,一般都是使用slaveOf配置来进行初始化配置. 2.与springboot集成实现读写分离 通过注解实现调用层读写分离 ...

  7. SPI转can芯片CSM300详解以及Linux驱动移植调试笔记

    一.CSM300概述 CSM300(A)系列是一款可以支持 SPI / UART 接口的CAN模块. 1. 简介 CSM300(A)系列隔离 SPI / UART 转 CAN 模块是集成微处理器. C ...

  8. 9个Linux 查看系统硬件信息命令(实例详解)

    在Linux下,我们精要遇到需要查看系统的硬件信息, 这里我罗列了查看系统硬件信息的实用命令,并做了分类,实例解说. 执行环境:ubuntu 16.04 1. cpu lscpu命令,查看的是cpu的 ...

  9. 零基础学习人工智能—Python—Pytorch学习(五)

    前言 上文有一些文字打错了,已经进行了修正. 本文主要介绍训练模型和使用模型预测数据,本文使用了一些numpy与tensor的转换,忘记的可以第二课的基础一起看. 线性回归 结合numpy使用 首先使 ...

  10. keepalived编译安装-麒麟v10Arm64

    环境信息 操作系统: Kylin Linux Advanced Server V10 (Lance) 架构:Arm keepalived版本:2.3.1 编译 wget https://www.kee ...