Android为我们提供了丰富飞可视化用户界面组件,包括菜单、对话框、按钮、下拉列表等。Android借用了Java的UI设计思想,包括事件响应机制和布局管理。Android系统中的所有UI类都是建立在View和ViewGroup这两个类的基础之上,所有View的子类称为“Widget”;所有ViewGroup的子类称为“Layout”。View和ViewGroup采用了组合设计模式,可以使得“部分-整体”同等对待。ViewGroup作为布局容器类在最上层,布局容器里面又可以有View和ViewGroup,如下图所示:
一、菜单
Android中菜单有三种,选项菜单(Option Menu),上下文菜单(Context Menu),子菜单(Sub Menu)。
选项菜单:当用户单击设备上的菜单按键时弹出的就是选项菜单;选项菜单的菜单项最多只能显示6个,超过6个则第六个自动显示“更多”选项来展开显示。
上下文菜单:android中长按视图控件后弹出的菜单,就是上下文菜单;
子菜单:将相同功能的分组进行多级显示的一种菜单。子菜单不支持嵌套。
二、对话框
对话框是程序运行中的弹出窗口;
Android提供了四种对话框,分别为警告对话框、进度对话框、日期选择对话框、时间选择对话框。
其中,Alert对话框是一个提示窗口,要求用户做出选择。该对话框中一般会有几个选择按钮、标题信息和提示信息。
三、提示信息Toast
提示信息在程序中很常用,也很简单。当用户执行某个动作之后,自动显示一个提示信息,过一会将自动消失。这就是提示信息Toast。
在程序中创建提示信息的步骤如下:
1)调用Toast的静态方法MakeText()添加显示文本和时长;
2)调用Toast的Show()显示。
四、事件处理
1、事件处理机制
android引用了Java中的事件处理机制,包括事件、事件源和事件监听器三个方面。事件可以是鼠标事件、键盘事件、触摸屏事件或鼠标移动事件;事件源是指产生事件的组件;事件监听器是组件产生事件时响应的接口。
2、常用的事件监听器
单击事件(view.OnClickListener):当用户触碰到某个组件或者方向键被按下时产生该事件,该事件的处理方法是onClick()。
焦点事件(View.OnFocusChangeListener):组件得到或失去焦点时产生该事件,事件处理方法是onFocusChange()。
按键事件(View.OnKeyListener):用户按下或释放设备上的某个按键时产生,事件处理方法是onKey()。
触碰事件(View.OnTouchListener):设备具有触摸屏幕功能时,触碰屏幕产生该事件,事件处理方法是onTouch()。
创建上下文菜单事件(View.OnCreateContextMenuListener):创建上下文菜单时产生该事件,事件的处理方法是onCreateContextMenu()。
3、事件处理步骤
创建监听器;
给要响应事件的组件注册事件监听器;
在事件处理方法中编写实现代码。
五、布局管理
所谓布局,就是组建在activity中的呈现方式,即组件大小、间距和对齐方式等。
1、android提供以下两种创建布局的方式:
1)在XML配置文件中声明:这种方式是将要呈现的组件在配置文件中声明,在程序中通过setContentView(R.layout.main)方法将视图呈现在activity中,通过findViewById()方法获取组件实例。(推荐)
2)在程序中通过“硬代码”直接实例化布局及其组件。
2、android中常见的布局方式有如下几种:
1)线性布局(LinearLayout):按照垂直或者水平方向布局组件。
2)帧布局(FrameLayout):从屏幕的左上角坐标布局组件。
3)表格布局(TableLayout):按照行列方式布局组件。
4)相对布局(RelativeLayout):相对其他组件的布局方式。
5)绝对布局(AbsoluteLayout):按照绝对坐标来布局组件。
六、组件Widget
1)常用组件
文本框(TextView)、编辑框(EditText)、单选按钮(RadioButton)、复选按钮(CheckBox)、开关按钮(ToggleButton)、
下拉列表(Spainner)
2)自动完成文本框(AutoCompleteTextView)
3)选项卡(Tab)
使用tab组件的步骤:
在布局文件中使用FrameLayout列出Tab组件及Tab中的内容组件;
Activity要继承TabActivity;
调用TabActivity的getTabHost()方法,获得TabHost对象;
通过TabHost创建Tab选项。
4)进度条
android系统中,进度条有多种:对话框进度条、标题栏进度条、水平进度条。
5)日期、时间选择对话框
DatePickerDialog;
TimePikerDialog;
6)列表视图(ListView)
7)网格视图(GridView)
8)画廊视图(Gallery)
9)地图视图(MapView)
10)网络视图(WebView)