第2章 Android应用的界面编程
2.1 界面编程与视图组件
View
(视图)与ViewGroup
(容器)
XML控制UI、代码控制UI、XML和代码混合控制UI
开发自定义View
继承View
并重写方法
2.2 布局管理器
LinearLayout
线性布局
TableLayout
表格布局
FrameLayout
帧布局
RelativeLayout
相对布局
GridLayout
网格布局
AbsoluteLayout
绝对布局 (过时)
Android的View和UI组件不是线程安全的,所以Android不允许开发者启动线程访问用户界面的UI组件
2.3 TextView
及其子类
TextView
文本框 CheckedTextView
EditText
编辑框
Button
按钮
RadioButton
单选按钮 RadioGroup
CheckBox
复选框
ToggleButton
状态开关按钮
Switch
开关
AnalogClock DigitalClock
时钟
Chronometer
计时器
用XML文件定义文本框的背景
使用9Patch图片作为按钮背景
2.4 ImageView
及其子类
ImageView
ImageButton
图片按钮
ZoomButton
ZoomControls
QuickContactBadge
显示关联到特定联系人的图片
2.5 AdapterView
及子类
ListView
列表视图 ListActivity
GridView
网格视图
ExpandableListView
可展开的列表组件
Spinner
列表选择框
Gallery
画廊视图,不推荐
AdapterViewFlipper
,可用于实现自动播放的图片库
StackView
堆叠视图
Adapter
接口及实现类
ArrayAdapter
继承BaseAdapter
SimpleAdapter
继承BaseAdapter
BaseAdapter
,用于被扩展
1.创建Adapter
2.调用AdapterView
的setAdapter(adapter)
方法设置Adapter
将数组作为资源
AutoCompleteTextView
自动完成文本框
2.6 ProgressBar
及其子类
ProgressBar
进度条
SeekBar
拖动条
RatingBar
星级评分条
requestWindowFeature(Window.FEATURE_PROGRESS); // 显示在标题上的进度条
2.7 ViewAnimator
及其子类
ViewSwitcher
视图切换组件,如实现分屏、左右切换效果
ImageSwitcher
图像切换器
TextSwitcher
文本切换器
ViewFlipper
组件切换
与View
, ImageView
, TextView
, AdapterViewFlipper
相比,侧重切换时的动画效果
***Switcher
是两个View
之间切换,***Flipper
是多个View
之间切换
2.8 各种杂项组件
使用Toast
显示提示信息框,可setView
但不建议
CalendarView
日历视图
DatePicker
TimePicker
日期、时间选择器
NumberPicker
数值选择器
SearchView
搜索框
TabHost
选项卡 使用TabActivity
(不推荐)对布局id
有要求
ScrollView
HorizontalScrollView
滚动视图,可嵌套使用
Notification
通过NotificationManager
发送
2.9 对话框
AlertDialog
弹出型对话框
PopupWindow
用于浮动显示内容
DatePickerDialog
TimePickerDialog
日期、时间选择对话框
ProgressDialog
进度对话框
可将Activity
的风格设为对话框风格, @android:style/Theme.Dialog
即该Activity
就是对话框
2.10 菜单
Menu
SubMenu
菜单,子菜单
PopupMenu
弹出式菜单 (与下拉列表不同)
选项菜单(按菜单键显示菜单),上下文菜单(长按组件显示菜单)
使用监听器来监听菜单事件(不推荐)
创建复选菜单项和单选菜单项
通过setIntent
设置与菜单项关联的Activity
使用XML文件定义菜单(推荐)
2.11 使用活动条
ActionBar
活动条 可隐藏
使用ActionBar
显示选项菜单
启用程序图标导航,如在图标上添加向左箭头
可在ActionBar
上显示自定义View
ActionBar
结合Fragment
实现Tab导航或下拉式导航