此为coursera课程Programming Mobile Applications for Android Handheld Systems: Part 1的笔记
这一讲为用户界面内容介绍。
用户界面是使用者和应用进行交互的方式。Android提供了若干构建用户界面的类。
View类。
View类是构成UI组件的重要内容,它在屏幕上提供矩形区域,并负责自身绘制和处理相关事件。
下面介绍几种android中的预定义View。
Button、ToggleButton、CheckBox、RatingBar、AutoCompleteTextView。
ToggleButton类似于开关,拥有两个状态,具有状态指示器。
CheckBox也具有两个状态,通常在选择菜单中出现。
RatingBar用于用户对事物评级。
AutoCompleteTextView带自动补齐功能的输入框。
以上这些View的功能主要有三:
1、设置是否可现(Button)
2、设置状态(ToggleButton、CheckBox)
3、设置监听器监听事件,设置属性等
处理View事件
处理事件的一种方式是使用listenter。android定义了一系列不同类型的监听器接口,这些接口有对应的方法在相应事件发生时调用。
android的View组织形式为树形结构,当android绘制这些视图时,会遍历树形结构若干次。
用户可以创建自定义View子类,此时需要重写绘制的相关方法,如onMeasure、onLayout、onDraw方法。
ViewGroup
android提供ViewGroup作为其他View和ViewGroup的容器。ViewGroup是View container和layout的基类。
android提供一系列预定义的ViewGroup,比如RadioGroup,TimePicker,DatePicker,WebView,MapView,Gallery和Spinner。
RadioGroup包含多个CheckBox或RadioButton。
TimePicker允许用户选择一个指定的时间。
同理,DatePicker允许用户选择一个指定的日期。
WebView用于显示网页,MapView用于显示地图信息。
AdapterView中的Views的数据不是由ViewGroup本身管理,而是由Adapter管理。
AdapterView只负责显示得到的数据。如ListView,AdapterView列出一系列可选的项,这些项由ListAdapter管理,形式类似于AutoCompleteTextView。
Spinner也是一个AdapterView,功能为下拉列表,数据由SpinnerAdapter提供。
Gallery的数据也有SpinnerAdapter提供,功能为可横向滑动的相册功能。
AdapterView显示一组数据,而Layout也是一种ViewGroup,用来定义View和View的组织形式。
LinearLayout使其下的View和ViewGroup在一行或列内排列。
在XML文件中所拥有的属性有android:layout_width,android:layout_height,android:layout_weight(该部件所占比例),android:orientation等。
RelativeLayout中子视图的位置为相对位置而不是绝对位置。
TableLayout子视图按表格排列,具有按行排列的TableRow标签,该标签中的子标签按列排列。android:gravity可标定对齐方式。
GridView是一种网格Layout。
菜单和工具栏
菜单是提供用户使用重要功能的方法,Activity为菜单添加项,并处理点击事件。
三种类型的Menu:options、context、submenu。
options:普通类型menu。
context:一般为长按后弹出的menu。
submenu:二级菜单,如删除操作时的确认动作。
创建菜单过程
首先在res/menu中定义XML文件。
当用户点击菜单键时,android调用如onCreateOptionsMenu。
当用户点击菜单中的某项时,android调用onOptionsMenuItemSelected。
菜单还有一些其他高级功能。
工具栏
在android3.0后加入,提供一些通用操作的快速接入;另一个用途是提供视图之间的切换,即TAB,每个TAB对应一个fragment。
对话框
对话框是用于用户和Activity短交互的窗口,包含AlertDialog、ProgressDialog、DatePickerDialog、TimePickerDialog。