Android开发系列9——UI开发详解

前言

Android的UI开发采用两种方式:

  • 1.编写XML;
  • 2.纯代码编写

IOS的UI开发两种方式:

  • 1.storyboard、XIB
  • 2.纯代码编写

  Android所有的UI组件底层都是继承于View,一些组件继承于ViewGroup的子类。Android在UI开发过程中采用的”组合器“设计模式进行UI的布局。 布局都是依靠一个UI容器(ViewGroup),在容器内添加UI组件的方式。

一、布局管理器

1.基本的管理器

布局管理器是继承于ViewGroup的子类,布局管理器主要用途:

  • 容纳UI组件
  • 调整UI组件的位置和大小

布局管理器的种类和简单介绍:

布局类型布局名称详细介绍
constraintlayout约束布局在Api9以上的Android系统,布局嵌套过多的问题,以灵活的方式定位和调整小部件
LInearLayout线性布局行、列 模式的布局
TableLayout表格布局(继承LInearLayout)多个列
FrameLayout帧布局(继承ViewGroup)帧:多个UI控件在同一个位置的同时布局
RelativeLayout相对布局相对:一个UI组件相对其他组件
GridLayout网格布局把UI分成网格,对网格内在进行UI布局
AbsoluteLayout绝对布局依靠的是绝对坐标的布局

每种布局管理器之间的继承关系:

View
ViewGroup
constraintlayout
TableLayout
LInearLayout
FrameLayout
RelativeLayout
GridLayout
AbsoluteLayout
2.AdapterView

AdapterView是一个重要的组件,它是一个抽象的基类,其子类在开发过程中非常常用。(就像IOS中的:UITableView、UICollectionView),接下来会介绍一下AdapterView及其子类的继承关系.

ViewGroup
AdapterView
AbsListView
AbsSpinner
adapterViewAnimator
ListView
GridView
ExpandableListView
Spinner
Gallery
AdapterViewFlipper
StackView

接下来详细介绍一下AdapterView子类中常用的几种子类。

UI组件组件名称介绍
ListView列表视图非常常用的组件,用于垂直列表的形式显示所有列表项(还要一个ListActivity可以直接使用)
GridView网格视图按照行、列的方式来显示多个组件
ExpandableListView可展开的列表组件可以把列表项分为机组,每组又可包含多个列表项
Spinner 、Gallery列表选择框一个列表选择框
AdapterViewFlipper显示上一个下一个图片,相机中显示图片
StackView叠在一起显示View

在上边AdapterView的子类过程中,需要使用大量数据Adapter 和 AdapterView对应相互绑定显示数据。
Adapter常用的实现类如下:

  • ArrayAdapter:简单、易用的Adapter。常用于将数组或List集合的多个值包装成多个列表项
  • SimpleAdapter:功能强大的Adapter,可用于将List集合的多个对象包装成多个列表项
  • SimpleCursorAdapter: 和SimpleAdapter类似,只是用于包装Cursor提供的数据。
  • BaseAdapter:通常用于被扩展。

以上仅简单介绍了AdapterList和Adapter之间的关系,具体的详细方法,可以参看Android开发文档

二、UI组件

  UI组件大体可以分为:图、文、控制器等。接下来简单讲述一下Android的系统组件中对应的图、文、控制器组件

1.TextView组件

  TextView组件直接继承于View,是一个在界面显示文本类似于编译器(被阉割的<不能编辑>)的UI组件,但是TextView有丰富的子类,提供丰富多样的UI组件。

  TextView及其常用子类的组件介绍

UI组件组件名称介绍
TextView文本框主要用于显示文字信息的UI组件,不能编辑(类似于IOS UILable)
EditText编辑框主要用于编辑输入,例如:账号、密码、验证码等
Button按钮具有相应效果的
RadioButton单选按钮字面意思就可以理解
CheckBox复选框类上
ToggleButton状态开关按钮类上
Switch开关类上

TextView及其常用子类的继承关系如下所示:

View
TextView
EidtText
Button
CompoundButton
RadioButton
CheckBox
ToggleButton
Switch

TextView的详细方法,可以参看Android开发文档

2.ImageView

  ImageView继承于View组件,主要功能用于显示Image的组件。

UI 组件组件名称介绍
ImageView图片显示器用于显示Image、Drawable内容的UI组件
ImageButton图片按钮显示图片的按钮
QuickContactBadge显示关联到特定联系人的图片
ZoomButton缩放按钮一个包含放大、缩小按钮的控件

ImageView及其常用子类的继承关系如下所示:

View
ImageView
ImageButton
QuickContactBadge
ZoomButton

ImageView的详细方法,可以参看Android开发文档

3.ProgressBar

ProgressBar是一个进度的组件,同样继承于View。主要用于描述进度的一个组件。接下来会介绍ProgressBar及其子类。

UI组件组件名称介绍
ProgressBar进度条加载过程中的进度条
SeekBar推动条可以拖动的,播放器的进度
RatingBar星级评分条

ProgressBar及其子类的继承关系如下:

View
ProgressBar
AbsSeekBar
SeekBar
RatingBar

ProgressBar的详细方法,可以参看Android开发文档

三、其他组件

1.ViewAnimator

ViewAnimation是一个基类,它继承了FrameLayout,所有它表现出FrameLayoutd的特征,同时在View切换时表现出动画效果。ViewAnimator的继承关系及其子类如下图所示:

FrameLayout
ViewAnimator
ViewSwitcher
ViewFlipper
ImageSwitcher
TextSwitcher

ViewAnimator及其子类的介绍:

UI组件组件名称介绍
ViewSwitcher视图切换组件将多个View层叠在一起,每次显示一个组件,View切换过程中指定动画效果
ImageSwitcher图片切换组件具有和ViewSwitcher相似的特征
TextSwitcher文本切换组件具有和ViewSwitcher相似的特征
ViewFlipper切换视图组件负责多个View的切换动画

ViewAnimation的详细方法,可以参看Android开发文档

2.其他的UI组件
2.1 UI基础组件
UI组件组件名称介绍
Toast提示消息框(带文字、图片信息)Toast提示消息不会获得焦点,一段时间自动消失
CalenderView日历视图组件用于显示和选择日期
DatePicker日期选择器 (FrameLayout的子类)用于选择日期
TimerPicker时间选择器 (FrameLayout的子类)用于选择时间
NumberPicker数值选择器让用户输入数值:键盘输入和拖动选择
SearchView搜索框组件用于文本框内输入文字,通过监听器监听用户输入内容,进行搜索
TabHost选择卡可以方便的在窗口放置多个标签,每个标签获得一个和外部容器相同大小的组件摆放区域
ScrollView滚动视图用于垂直、水平方向添加组件进行滚动的组件
Notification通知组件一个具有全局效果的通知
AlertDialog提示对话框功能最丰富、实际应用最广的对话框
ProgressDialog进度对话框这个对话框只是对进度条的封装
DatePickerDialog日期选择对话框对话框对DatePicker的封装
TimePickerDialog时间选择对话框对TimePicker的封装
PopupWindow弹出窗口弹出一个对话框的新组件
2.1 UI 菜单
UI组件组件名称介绍
SubMenu子菜单代表一个子菜单,包含1~N个MenuItem
ContextMenu上下文菜单代表一个上下文菜单,包含1~N个MenuItem
PopupMenu弹出式菜单弹会显示组件的下方或者上方

同时可以使用XML自定义Menu

2.1 UI 活动条(ActionBar)

ActionBar主要用于显示、隐藏ActionBar。可以实现Bar的导航等功能

总结

Android系统中系统自带的UI组件基本如上方列举的,可以基本了解可以使用的UI组件,更好的学习Android的UI布局,如果需要用户可以自定义新的UI组件,本文主要是列举Android中的UI组件和简单介绍。

持续更新中……

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值