A014-Values资源
关于Android中使用的资源文件,前面陆陆续续也介绍了不少,这节课给大家介绍一下Android中使用到的“值资源”。
可以看到上面的截图,在values文件夹下包含了很多个xml文件,每个文件代表一种值类型,里面定义了具体的类型资源。
看一下在values下可以定义哪些资源文件:
Bool
在bools.xml中定义bool值
语法:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool
name="bool_name"
>[true | false]</bool>
</resources>
eg: 保存路径:res/values/bools.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);
在XML中使用:
<ImageView
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:src="@drawable/logo"
android:adjustViewBounds="@bool/adjust_view_bounds" />
Color
在XML文件中定义颜色值 语法:
<?xml version="1.0" encoding="utf-8"?><resources>
<color
name="color_name"
>hex_color</color></resources>
eg: 保存路径:res/values/colors.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);
在XML中使用:
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="@color/translucent_red"
android:text="Hello"/>
Dimension
在XML定义尺寸值
尺寸可以使用以下单位: dp - 与密度无关的像素,主要应用于布局中的间距 sp - 与dp类似,主要应用与字体大小 pt - 屏幕物理长度单位, 表示一个点,是屏幕的物理尺寸。大小为1英寸的1/72。 px - 对应屏幕上实际像素。这个单位不推荐使用,因为不同的设备可以具有不同每英寸不同数量的像素。 mm- 表示毫米,基于屏幕的物理尺寸。 in -表示英寸,是屏幕的物理尺寸。每英寸等于2.54厘米,我们经常所说的屏幕多少寸,指的是对角线的长度。
语法:
<?xml version="1.0" encoding="utf-8"?><resources>
<dimen
name="dimension_name"
>dimension</dimen></resources>
eg: 保存路径: 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>
在Java中使用:
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值,它会映射到R.java文件,具有唯一性,我们在程序中可以直接使用它作为id。
语法:
<?xml version="1.0" encoding="utf-8"?><resources>
<item
type="id"
name="id_name" /></resources>
eg: 保存路径: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>
在XML中使用:
<Button android:id="@id/button_ok"
style="@style/button_style" />
Integer
在XML中定义整型值。
语法:
<?xml version="1.0" encoding="utf-8"?><resources>
<integer
name="integer_name"
>integer</integer></resources>
eg: 保存路径:res/values/integers.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);
Integer-Array
整型数组,对应的也有字符串数组。
语法:
<?xml version="1.0" encoding="utf-8"?><resources>
<integer-array
name="integer_array_name">
<item
>integer</item>
</integer-array></resources>
eg:
<?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);
Typed Array
在XML中定义类型资源
语法:
<?xml version="1.0" encoding="utf-8"?><resources>
<array
name="integer_array_name">
<item>resource</item>
</array></resources>
eg: 保存位置: res/values/arrays.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);
总结
上面给大家整理了关于Android中的values资源,这是我们在实际开发中用得到的资源,如何合理去使用它们要根据自己的使用场景,Android为我们提供这些资源就是为了让我们更加方便的开发,减少硬编码的情形,也是为了规范我们开发,把资源和逻辑代码分开也会让我们更加容易理解程序的设计模式。
本文参考: http://www.android-doc.com/guide/topics/resources/more-resources.html
- Android 动态链接库加载原理及 HotFix 方案介绍
- 如果裸写一个goroutine pool
- 【Dev Club 分享】微信 iOS SQLite 源码优化实践
- 移动客户端中高效使用 SQLite
- 【Dev Club 分享】微信热补丁 Tinker 的实践演进之路
- Android 进程保活招式大全
- 【Dev Club 分享】H5 视频直播那些事
- Android Patch 方案与持续交付
- Linux系统下MongoDB的简单安装与基本操作
- Go语言同步(Synchronization)
- 服务器反爬虫攻略:Apache/Nginx/PHP禁止某些User Agent抓取网站
- 【Dev Club分享】JSPatch成长之路
- Node.js新手必须知道的4个JavaScript概念
- 博客文章重新启用评论,附一键填写评论中用户信息代码生成工具
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法