该系列文章主要基于AndroidQ平台,主要介绍Android应用基础开发相关知识。主要针对安卓应用开发路径的完整解读 和 coding练习内容的解读。
本文对几类UI组件进行说明(参照安卓疯狂讲义):TextView组件及其子类、ImageView组件及其子类、 AdapterView组件及其子类、ProgressBar组件及其子类、ViewAnimator组件及其子类、Dialog 组件及其子类、Menu菜单组件、ActionBar组件以及 其他常见组件。
解读UI组件的方式如下:
- 首先,对于这些组件会先给出基本的解读和相关的子类、父类说明。
- 其次,给出相关的官方文档,可以了解该组件的API和相关方法的详细说明。
- 最后,给出该系列UI组件的练习内容相关指南,怎么练习才能掌握该组件。
关于练习内容:网上还有比较多的书籍可以用于练习的,之所以选择书籍是因为会相对比较系统。这里选择其中一本(疯狂安卓讲义第四版,源码难度更适合初学者入手)
1 TextView组件及其子类
TextView直接继承了View,同时也是CheckedTextView、EditView、Chronometer、TextClock、Button等组件的父类。它主要是在界面上显示文本,其子类EditText在TextView的基础上允许用户编辑文本内容,子类CheckedTextView增加了一个checked状态。TextView组件及其子类的关系图整理如下:
关于TextView的XML属性和方法使用参照文档:Android组件之TextView组件
练习内容:Android代码练习之TextView
2 ImageView组件及其子类
ImageView继承自view,同时也是 ImageButton、QuickContactBadge等组件的父类。用于显示图片以及任何Drawable对象。QuickContactBadge组件可以关联到手机中指定的联系人,当用户点击该图片,系统会自动打开该联系人的联系方式界面。ImageView组件及其子类关系图整理如下:
关于ImageView的XML属性和方法使用参照文档:Android组件之ImageView组件
3 AdapterView组件及其子类
AdapterView继承了ViewGroup类,同时也是AbsListView、AbsSpinner、AdapterViewAnimator的父类。它本身是一个抽象基类,可以包含多个“列表项”,并以合适的形式展现出来。AdapterView组件及其子类关系图整理如下:
这里注意:标注蓝色的组件为官方不再推荐使用的组件。关于AdapterView的XML属性和方法使用参照文档:Android组件之AdapterView组件
4 ProgressBar组件及其子类
ProgressBar继承View类,是SeekBar和RatingBar的父类,代表了进度条组件,主要用于动态显示进度,避免长时间的执行某个操作,更好的提供了界面的友好性。ProgressBar组件及其子类关系图整理如下:
关于ProgressBar的XML属性和方法使用参照文档: Android组件之ProgressBar组件
5 ViewAnimator组件及其子类
ViewAnimator是一个基类,继承FrameLayout,是ViewSwitcher、ViewFlipper的父类,可以将多个View叠加起来,可以在View切换时表现出动画效果。ViewAnimator组件及其子类关系图整理如下:
关于ViewAnimator的XML属性和方法使用参照文档: Android组件之ViewAdapter组件
6 Dialog 组件及其子类
Dialog是AlertDialog的父类,AlertDialog是ProgressDialog、DatePickerDialog、TimePickerDialog的父类。AlertDialog可以根据图标、标题、内容、按钮生成各种对话框(单选、多选等)。Dialog组件及其子类关系图整理如下:
关于Dialog的XML属性和方法使用参照文档:Android组件之Dialog组件
7 选项菜单
7.1 Menu菜单组件及其子类
Menu主要分三类:选项菜单OptionMenu、上下文菜单ContextMenu、弹出式菜单PopupMenu,分别用于 放置对应用产生全局影响的操作 搜索/设置、列表型数据的批量操作、增加多个菜单项并为菜单项增加子菜单。关于Menu接口的XML属性和方法使用参照文档:Android组件之Menu接口
练习内容:Android代码练习之Menu
7.2 ActionBar
因为Android系统从3.0版本开始就不再强制要求手机必须提供MENU物理按键,这会导致用户无法打开选项菜单,因此Android提供了ActionBar解决方案。用户可以通过ActionBar右边的折叠图标打开选项菜单。ActionBar可以将选项菜单显示成ActionItem。
ActionBar是继承Object的抽象类,用于显示选项菜单的菜单项,可以使用图标作为返回主屏幕/向上一级的导航操作。关于ActionBar的XML属性和方法使用参照文档:Android组件之ActionBar类
8 其他常见组件简介
8.1 Toast信息提示框 组件功能和用法
Toast组件是直接继承Object的,主要用于显示简单的文字提示信息,该提示信息不会获得焦点,过一会儿会自动消失。关于Toast的XML属性和方法使用参照文档:Android组件之Toast组件
8.2 CalendarView 日历视图 组件功能和用法
CalendarView组件是继承FrameLayout的,可用于显示和选择日期,可以通过滚动显示日历,监听日期变化。关于CalendarView的XML属性和方法使用参照文档:Android组件之CalendarView组件
8.3 DatePicker和TimePicker 日期/事件选择器 组件功能和用法
DatePicker和TimePicker组件是继承FrameLayout的,DatePicker可用于选择日期,TimePicker可用于显示时间,同样也都可以用于监听日期和时间的变化。关于DatePicker和TimePicker组件的XML属性和方法使用参照文档分别如下:
8.4 NumberPicker 数值选择器 组件功能和用法
NumberPicker组件是继承LinearLayout的,可以通过键盘输入数值,也可以通过滑动选择数值。关于NumberPicker组件的XML属性和方法使用参照文档:Android组件之NumberPicker组件
8.5 SearchView 搜索框 组件功能和用法
SearchView组件是继承LinearLayout的,在文本框内输入内容后提交搜索可触发监听器执行实际的搜索。关于SearchView组件的XML属性和方法使用参照文档:Android组件之SearchView组件
8.6 ScrollView 滚动视图 组件功能和用法
ScrollView组件是继承FrameLayout的,主要为普通组件添加垂直滚动条,且最多只能包含一个组件。ScrollView组件的XML属性和方法使用参照文档:Android组件之ScrollView组件
8.7 Notification 通知
Notification组件是直接继承Object的,是用于显示手机状态栏通知的,该组件是具有全局效果的通知,一般用NotificationManager服务来发送Notification通知。Notification组件的XML属性和方法使用参照文档:Android组件之Notification组件
8.8 练习内容总结
练习内容:Android代码练习之其他常用组件
总结
- 熟悉组件的继承关系和子类关系 并掌握官网文档中检索组件和API的技巧(Kotlin & java)。
- 本章节重在练习,最关键的就是将所有标注的练习内容全部练习完成并理解。