Android mobile development and application
安徽师范大学-计算机信息学院-2019-2020学年第一学期
, 作者(授课教师): 周文
字符串资源文件位于res/values
目录下,根元素是<resources>
</resources>
标记,在该元素中,使用<string></string>
标记定义各字符串,其中,通过为<string></string>
标记设置name属性来指定字符串的名称,在起始标记<string>
和结束标记</string>
中间添加字符串的内容。
在Java文件中使用字符串资源的语法格式如下:
xxxxxxxxxx
[<package>.]R.string.字符串名
在XML文件中使用字符串资源的基本语法格式如下:
xxxxxxxxxx
@[<package>:]string/字符串名
在Android中,颜色值通过RGB(红、绿、蓝)
三原色和一个透明度(Alpha)值表示。它必须以井号“#”开头,后面接Alpha-Red-Green-Blue
形式的内容。
颜色资源文件位于res/values
目录下,根元素是<resources></resources>
标记,在该元素中,使用<color></color>
标记定义各颜色资源,其中,通过为<color></color>
标记设置name
属性来指定颜色资源的名称,在起始标记<color>
和结束标记</color>
中间添加颜色值。
xxxxxxxxxx
[<package>.]R.color.颜色资源名
xxxxxxxxxx
@[<package>:]color/颜色资源名
在Android中,支持的常用尺寸单位如下:
px
(Pixels,像素):每个px对应屏幕上的一个点。in
(Inches,英寸):标准长度单位。每英寸等于2.54厘米。pt
(points,磅):屏幕物理长度单位,1/72英寸。dip或dp
(设置独立像素):一种基于屏幕密度的抽象单位。在每英寸160点的显示器上,1dip=1px。但随着屏幕密度的改变,dip与px的换算也会发生改变。sp
(比例像素):主要处理字体的大小,可以根据用户字体大小首选项进行缩放。mm
(Millimeters,毫米):屏幕物理长度单位。尺寸资源文件位于res/values
目录下,根元素是<resources></resources>
标记,在该元素中,使用<dimen></dimen>
标记定义各尺寸资源,其中,通过为<dimen></dimen>
标记设name属性
来指定尺寸资源的名称,在起始标记<dimen>
和结束标记</dimen>
中间定义一个尺寸常量。
xxxxxxxxxx
[<package>.]R.dimen.尺寸资源名
xxxxxxxxxx
@[<package>:]dimen/尺寸资源名
创建Android项目,实现一个游戏的关于界面,并通过字符串资源、颜色资源和尺寸资源设置文字及使用的颜色和大小等。
创建Android项目,实现逐渐加宽的彩虹桥背景。
在Android中,将布局资源文件放置在res/layout
目录下,布局资源文件的根元素通常是各种布局管理器
,在该布局管理器中,通常是各种View组件
或是嵌套的其他布局管理器
。
xxxxxxxxxx
[<package>.]R.layout.<文件名>
xxxxxxxxxx
@[<package>:]layout.文件名
数组资源文件位于res/values目录下,根元素是<resources></resources>
标记,在该元素中,包括以下3个子元素。
<array />
子元素:用于定义普通类型的数组。<integer-array />
子元素,用于定义整数数组。<string-array />
子元素,用于定义字符串数组。xxxxxxxxxx
[<package>.]R.array.数组名
xxxxxxxxxx
@[<package>:]array/数组名
在Android中,不仅可以将扩展名为.png
、.jpg
和.gif
的普通图片作为图片资源,而且可以将扩展名为.9.png的9-Patch图片作为图片资源。
9-Patch图片是使用Android SDK
中提供的工具Draw 9-patch
生成的,该工具位于Android SDK
安装目录下的tools目录中,双击draw9patch.bat
即可打开该工具。使用该工具可以生成一个可以伸缩的标准PNG
图像,Android会自动调整大小来容纳显示的内容。
在Java文件中访问图片资源的语法格式如下:
xxxxxxxxxx
[<package>.]R.drawable.<文件名>
在XML文件中访问图片资源的基本语法格式如下:
xxxxxxxxxx
@[<package>:]drawable.文件名
StateListDrawable
资源是定义在XML文件中的Drawable对象,能根据状态来呈现不同的图像
StateListDrawable资源文件同图片资源一样,也是放在res/drawable-xxx
目录中。StateListDrawable资源文件的根元素为<selector></selector>
,在该元素中可以包括多个<item></item>
元素。每个Item元素可以设置以下两个属性。
android:color
或android:drawable
Drawable资源
;android:state_xxx
状态属性 | 描述 |
---|---|
android:state_active | 表示是否处于激活状态,属性值为true或false |
android:state_checked | 表示是否处于勾选状态,属性值为true或false |
android:state_enabled | 表示是否处于可用状态,属性值为true或false |
android:state_first | 表示是否处于开始状态,属性值为true或false |
android:state_focused | 表示是否处于获得焦点状态,属性值为true或false |
android:state_last | 表示是否处于结束状态,属性值为true或false |
android:state_middle | 表示是否处于中间状态,属性值为true或false |
android:state_pressed | 表示是否处于被按下状态,属性值为true或false |
android:state_selected | 表示是否处于被选择状态,属性值为true或false |
android:state_window_focused | 表示窗口是否已经得到焦点状态,属性值为true或false |
创建Android项目,实现当按钮为可用状态时,使用绿色背景,为不可用状态时,使用灰色背景。
样式资源主要用于对组件的显示样式进行控制,例如,改变文本框显示文字的大小和颜色等。样式资源文件放置在res/values
目录中,它的根元素是<resources></resources>
标记,在该元素中,使用<style></style>
标记定义样式,其中,通过为<style></style>
标记设置name属性来指定样式的名称,在起始标记<style>
和结束标记</style>
中间添加<item></item>
标记来定义格式项,在一个<style></style>
标记中,可以包括多个<item></item>
标记。
xxxxxxxxxx
@[<package>:]style/样式资源名
主题资源与样式资源类似,定义主题资源的资源文件,也是保存在res/values目录中,其根元素同样是<resource></resource>
标记,在该标记中,也是使用<style></style>
标记定义主题。所不同的是,主题资源不能作用于单个的View组件,而是对所有(或单个)Activity
起作用。通常情况下,主题中定义的格式都是为改变窗口外观而设置的。
在Android中,提供了以下两种使用主题资源的方法。
在AndroidManifest.xml
文件中使用主题资源
xxxxxxxxxx
android:theme="@style/bg"
在Java文件中使用主题资源
在定义资源文件时,我们使用的也是XML文件,这些文件不属于这里我们要介绍的原始XML资源。这里所说的原始XML资源,是指一份格式良好的,没有特殊要求的普通XML文件。
它一般保存在res/xml
目录(在创建Android项目时,没有自动创建xml目录,需要我们手动创建)中,通过Resources.getXml()
方法来访问。
菜单资源文件通常应该放置在res/menu
目录下,在创建项目时,默认是不自动创建menu目录
的,所以需要我们手动创建。菜单资源的根元素通常是<menu></menu>
标记,在该标记中可以包含以下两个子元素。
<item></item>
标记
属性 | 描述 |
---|---|
android:id | 用于为菜单项设置ID,也就是唯一标识 |
android:title | 用于为菜单项设置标题 |
android:alphabeticShortcut | 用于为菜单项指定字符快捷键 |
android:numericShortcut | 用于为菜单项指定数字快捷键 |
android:icon | 用于为菜单项指定图标 |
android:enabled | 用于指定该菜单项是否可用 |
android:checkable | 用于指定该菜单项是否可选 |
android:checked | 用于指定该菜单项是否已选中 |
android:visible | 用于指定该菜单项是否可见 |
<group></group>
标记
用于将多个<item></item>
标记定义的菜单包装成一个菜单组。
属性 | 描述 |
---|---|
android:id | 用于为菜单组设置ID,也就是唯一标识 |
android:heckableBehavior | 用于指定菜单组内各项菜单项的选择行为,可选值为none(不可选)、all(多选)和single(单选) |
android:menuCategory | 用于对菜单进行分类,指定菜单的优先级,可选值为container、system、secondary和alternative |
android:enabled | 用于指定该菜单组中的全部菜单项是否可用 |
android:visible | 用于指定该菜单组中的全部菜单项是否见 |
当用户单击设备上的菜单按键时,弹出的菜单就是选项菜单。
onCreateOptionsMenu()
方法。onOptionsItemSelected()
方法,用于当菜单项被选择时,作出相应的处理。2.上下文菜单
当用户长时间按键不放时,弹出的菜单就是上下文菜单。
onCreate()
方法中注册上下文菜单。onCreateContextMenu()
方法。onOptionsItemSelected()
方法,用于当菜单项被选择时,作出相应的处理。创建Android项目,实现一个用于改变文字颜色的上下文菜单。
国际化的英文单词是Internationalization
,因为这个单词太长了,有时也简称为I18N,其中的I是这个单词的第一个字符,18表示中间省略的字母个数,而N代表这个单词的最后一个字母。
I18N
也就是国际化
的意思。Android程序国际化,也就是程序可以根据系统所使用的语言,将界面中的文字翻译成与之对应的语言。这样,可以让程序更加通用。
在编写Android项目时,通常都是将程序中要使用的字符串资源放置在res/values目录下的strings.xml
文件中,为了给这些字符串资源实现国际化,可以在Android项目的res目录下,创建对应于各个语言的资源文件夹
简体中文
、繁体中文
和美式英文
,可以分别创建名称为values-zh-rCN
、values-zh-rTW
和values-en-rUS
的文件夹。在每个文件夹中创建一个对应的strings.xml
文件,并在该文件中定义对应语言的字符串即可。这样,当程序运行时,就会自动根据操作系统所使用的语言来显示对应的字符串信息了。
在每个文件夹中创建一个对应的strings.xml
文件,并在该文件中定义对应语言的字符串即可。
这样,当程序运行时,就会自动根据操作系统所使用的语言来显示对应的字符串信息了。
本章结束
2019-9-1