基于安卓手持设备的手机应用编程——用户界面

此为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。









你可能感兴趣的:(Android)