android的UI和常用控件
2017-03-19 16:01
260 查看
Android 的UI概述和常用的控件
一、UI概述
在android应用中,UI(User Interface)界面是非常重要的,它是人与手机之间数据传递、交互信息的重要媒介和对话接口,是Android系统的重要组成部分。
• 系统 UI
• 自定义 UI
• View
• ViewGroup
二、View和ViewGroup
Android应用的界面是由View和ViewGroup对象构建的。它们有很多种类,并且都是View的子类。View类是Android系统平台上用户界面表示的基本单元,View的一些子类被统称为Widgets(工具),提供诸如文本输入框和按钮之类的UI对象的完整实现。多个视图组件(View)可以存放在一个视图容器(ViewGroup)里,但是一个界面文件中必须有且只有一个容器作为根节点。
• View 是屏幕上的一个矩形区域,负责绘制和事件处理;它是控件(widget)的基类。
• ViewGroup 是 View 的子类,它是不可见的容器,负责管理其他 View 及它们的布局属性;它是布局(layout)和视图容器的基类。
三、布局
不可见的容器(ViewGroup) 定义 UI 的可视化结构,通过布局参数(LayoutParams)定义子元素的尺寸、位置。
布局分类:
Android创建工程的时候一般默认相对布局。如果要使用其它布局,就需要改变项目的布局方式。Android的布局分为以下6类: (1)线性布局(LinearLayout)
有水平线性布局和垂直线性布局之分,用Android:orientation的属性值vertical(垂直)和horizontal(水平)来区分,一般系统默认horizontal。
(2)相对布局 (RelativeLayout)
相对布局有两种形式,一种相对于容器而言,一种是相对于控件而言的。下边列出一些常用的控件属性:
android:layout_alignParentTop 如果为true,将该控件的顶部与其父控件的顶部对齐;
android:layout_alignParentBottom如果为true,将该控件的底部与其父控件的底部对齐;
android:layout_alignParentLeft 如果为true,将该控件的左部与其父控件的左部对齐;
android:layout_alignParentRight 如果为true,将该控件的右部与其父控件的右部对齐;
android:layout_toLeftOf 将该控件的右边缘与给定ID的控件左边缘对齐;
android:layout_toRightOf
将该控件的左边缘与给定ID的控件右边缘对齐;
android:layout_above
将该控件的底部置于给定ID的控件之上;
android:layout_below
将该控件的底部置于给定ID的控件之下;
android:layout_alignBaseline
将该控件的baseline与给定ID的baseline对齐;
android:layout_alignTop 将该控件的顶部边缘与给定ID的顶部边缘对齐;
android:layout_alignBottom 将该控件的底部边缘与给定ID的底部边缘对齐;
android:layout_alignLeft 将该控件的左边缘与给定ID的左边缘对齐;
android:layout_alignRight 将该控件的右边缘与给定ID的右边缘对齐;
更多属性请查看链接:http://blog.csdn.net/heysuo/article/details/39027753
(3)帧布局(FrameLayout)
帧布局设计的界面,只能在屏幕左上角显示一个控件,如果添加多个控件,这些控件回按照顺序在屏幕的左上角重叠显示,且会透明显示之前控件的文本,常见的刮刮卡就是通过帧布局实现的。
(4)表格布局(TableLayout)
行数由TableRow对象控制,即布局中有多少TableRow对象,就有多少行。列数由最宽的单元格决定,假如第一个TableRow有两个控件,第二个TableRow有三个控件,那么这个TableRow就有三个控件。Android:layout_column属性决定具体的列数。
(5)网格布局(GridLayout)
用一组无限细的直线将绘图区域分成行、列和单元,并指定控件的显示区域和空间在该区域的显示方式。
(6)绝对布局(AbsoluteLayout)
通过指定x、y坐标来哦内阁制每一个空间的位置,用android:layout_x和android:layout_y两个属性来指定其准确的坐标值,控件以屏幕左上角为坐标原点。
四、视图(View)的继承结构
由视图可见,凡是显示在Android屏幕上的“可视化”控件都是View,因为全都继承自View在使用时,可以类型转化。
View 的通有属性如图:
五、常用控件
按用途分类:
1、TextView
显示文字,相当于Panel。一般用来文本展示,继承自android.view.View,在android.widget包中。
常用属性设置见下图:
在布局文件(XML)对应的写法:
• 常用属性设置:
• 通常用法:
• super.findViewById(id)得到在layout中声明的Button的引用,setOnClickListener(View.OnClickListener)添加监听。然后再View.OnClickListener监听器中使用v.equals(View)方法判断哪个按钮被按下,进行分别处理。
ImageButton继承自ImageView类,与Button之间的最大区别在于ImageButton中没有text属性。ImageButton控件中设置按钮中显示的图片可以通过android:src属性来设置。也可以通过setImageResource(int)来设置。
ImageView常用属性(也是ImageButton继承具有的属性):
常用属性:
常用方法:
ImageView 伸缩类型:
常用方法:
isChecked()检查是否被选中。
监听按钮状态更改,需要添加setOnCheckedChangeListener(CompoundButton.OnCheckedChangeListener);
android.widget. RadioButton单选按钮,继承自android.widget.CompoundButton,在android.widget包中。
通常用法:
单选按钮要声明在RadioGroup,RadioGroup是流式布局android.widget.LinearLayout的子类。
单选按钮状态更改的监听,是要给他的RadioGroup添加setOnCheckedChangeListener(RadioGroup.OnCheckedChangeListener)监听器。注意监听器类型和CheckBox是不一样的。
常用属性设置:
• getDayOfMonth():获取当前Day
• getMonth():获取当前月
• getYear()获取当前年
• updateDate(int year, int monthOfYear, int dayOfMonth):更新日期
TimePicker
• 查看一个在24小时或上午/下午模式下一天的时间。
• 常用方法
• setCurrentMinute(Integer currentMinute)设置当前时间的分钟
• getCurrentMinute()获取当前时间的分钟
• setEnabled(boolean enabled)设置当前视图是否可以编辑。
• m_TimePicker.setIs24HourView(true);设置为24小时制显示
• setOnTimeChangedListener(TimePicker.OnTimeChangedListener onTimeChangedListener)当时间改变时调用
相关包类:
• TimePickerDialog、DatePickerDialog
• 以对话框形式显示日期时间视图
• Calendar
• 日历是设定年度日期对象和一个整数字段之间转换的抽象基类,如,月,日,小时等。
一、UI概述
在android应用中,UI(User Interface)界面是非常重要的,它是人与手机之间数据传递、交互信息的重要媒介和对话接口,是Android系统的重要组成部分。
• 系统 UI
• 自定义 UI
• View
• ViewGroup
二、View和ViewGroup
Android应用的界面是由View和ViewGroup对象构建的。它们有很多种类,并且都是View的子类。View类是Android系统平台上用户界面表示的基本单元,View的一些子类被统称为Widgets(工具),提供诸如文本输入框和按钮之类的UI对象的完整实现。多个视图组件(View)可以存放在一个视图容器(ViewGroup)里,但是一个界面文件中必须有且只有一个容器作为根节点。
• View 是屏幕上的一个矩形区域,负责绘制和事件处理;它是控件(widget)的基类。
• ViewGroup 是 View 的子类,它是不可见的容器,负责管理其他 View 及它们的布局属性;它是布局(layout)和视图容器的基类。
三、布局
不可见的容器(ViewGroup) 定义 UI 的可视化结构,通过布局参数(LayoutParams)定义子元素的尺寸、位置。
布局分类:
Android创建工程的时候一般默认相对布局。如果要使用其它布局,就需要改变项目的布局方式。Android的布局分为以下6类: (1)线性布局(LinearLayout)
有水平线性布局和垂直线性布局之分,用Android:orientation的属性值vertical(垂直)和horizontal(水平)来区分,一般系统默认horizontal。
(2)相对布局 (RelativeLayout)
相对布局有两种形式,一种相对于容器而言,一种是相对于控件而言的。下边列出一些常用的控件属性:
android:layout_alignParentTop 如果为true,将该控件的顶部与其父控件的顶部对齐;
android:layout_alignParentBottom如果为true,将该控件的底部与其父控件的底部对齐;
android:layout_alignParentLeft 如果为true,将该控件的左部与其父控件的左部对齐;
android:layout_alignParentRight 如果为true,将该控件的右部与其父控件的右部对齐;
android:layout_toLeftOf 将该控件的右边缘与给定ID的控件左边缘对齐;
android:layout_toRightOf
将该控件的左边缘与给定ID的控件右边缘对齐;
android:layout_above
将该控件的底部置于给定ID的控件之上;
android:layout_below
将该控件的底部置于给定ID的控件之下;
android:layout_alignBaseline
将该控件的baseline与给定ID的baseline对齐;
android:layout_alignTop 将该控件的顶部边缘与给定ID的顶部边缘对齐;
android:layout_alignBottom 将该控件的底部边缘与给定ID的底部边缘对齐;
android:layout_alignLeft 将该控件的左边缘与给定ID的左边缘对齐;
android:layout_alignRight 将该控件的右边缘与给定ID的右边缘对齐;
更多属性请查看链接:http://blog.csdn.net/heysuo/article/details/39027753
(3)帧布局(FrameLayout)
帧布局设计的界面,只能在屏幕左上角显示一个控件,如果添加多个控件,这些控件回按照顺序在屏幕的左上角重叠显示,且会透明显示之前控件的文本,常见的刮刮卡就是通过帧布局实现的。
(4)表格布局(TableLayout)
行数由TableRow对象控制,即布局中有多少TableRow对象,就有多少行。列数由最宽的单元格决定,假如第一个TableRow有两个控件,第二个TableRow有三个控件,那么这个TableRow就有三个控件。Android:layout_column属性决定具体的列数。
(5)网格布局(GridLayout)
用一组无限细的直线将绘图区域分成行、列和单元,并指定控件的显示区域和空间在该区域的显示方式。
(6)绝对布局(AbsoluteLayout)
通过指定x、y坐标来哦内阁制每一个空间的位置,用android:layout_x和android:layout_y两个属性来指定其准确的坐标值,控件以屏幕左上角为坐标原点。
四、视图(View)的继承结构
由视图可见,凡是显示在Android屏幕上的“可视化”控件都是View,因为全都继承自View在使用时,可以类型转化。
View 的通有属性如图:
五、常用控件
按用途分类:
文本控件 | TextView、EditText |
按钮控件 | Button、 ImageButton |
状态开关按钮 | ToggleButton |
单选与复选按钮 | CheckBox、RadioButton |
图片控件 | ImageView |
时钟控件 | AnalogClock、DigitalClock |
日期与时间选择控件 | DatePicker、TimePicker |
1、TextView
显示文字,相当于Panel。一般用来文本展示,继承自android.view.View,在android.widget包中。
常用属性设置见下图:
在布局文件(XML)对应的写法:
属性名称 | 说明 |
android:autoLink=”” | 链接类型。Web网址,email邮件,phone电话,map地图。Linkify。 |
android:hint="请输入数字!" | 当TextView中显示的内容为空时,显示该文本 |
android:textColor = "#ff8c00" | 字体颜色 |
android:textSize="20dip" | 字体大小 |
android:layout_gravity="center_vertical" | 设置控件显示的位置:默认top,这里居中显示,还有bottom |
2、EditText
输入框,可编辑,可设置软键盘方式。继承自android.widget.TextView,在android.widget包中。• 常用属性设置:
android:hint="请输入用户名" | 输入框的提示文字 |
android:password="" | True为密码框 |
android:phoneNumber="" | True为电话框 |
android:digits | 设置允许输入哪些字符。如“1234567890.+-*/%\n()” |
android:numeric="" | 数字框。Integer正整数, signed整数(可带负号), decimal浮点数。 |
3、Button与ImageButton
Button是最常用的按钮,继承自android.widget.TextView,在android.widget包中。他的常用子类CheckBox,RadioButton, ToggleButton。• 通常用法:
• super.findViewById(id)得到在layout中声明的Button的引用,setOnClickListener(View.OnClickListener)添加监听。然后再View.OnClickListener监听器中使用v.equals(View)方法判断哪个按钮被按下,进行分别处理。
ImageButton继承自ImageView类,与Button之间的最大区别在于ImageButton中没有text属性。ImageButton控件中设置按钮中显示的图片可以通过android:src属性来设置。也可以通过setImageResource(int)来设置。
ImageView常用属性(也是ImageButton继承具有的属性):
4、ImageView—图片控件
ImageView控件负责显示图片,其图片的来源可以是在资源文件中的id,也可以是Drawable对象或者位图对象。还可以是Content Provider的URI。常用属性:
Android:adjustViewBounds | 设置是否需要ImageView调整自己的边界,保证图片的显示比例 |
Android:maxHeight | 最大高度 |
Android:maxWidth | 最大宽度 |
Android:src | 图片路径 |
Android:scaleType | 调整或移动图片 |
setAlpha(int) | 设置ImageView透明度 |
setImageBitmap(Bitmap) | 设置ImageView显示的内容为Bitmap对象 |
setImageDrawable(Drawable) | 设置ImageView所显示内容为Drawable |
setImageURI(Uri) | 设置ImageView所显示内容为Uri |
setSelected(boolean) | 设置ImageView的选择状态 |
setImageResource(int) | 设置ImageView显示内容的指定的id资源 |
5、RadioButton和CheckBox--单选与复选按钮
android.widget.CheckBox复选按钮,继承自android.widget.CompoundButton,在android.widget包中。常用方法:
isChecked()检查是否被选中。
监听按钮状态更改,需要添加setOnCheckedChangeListener(CompoundButton.OnCheckedChangeListener);
android.widget. RadioButton单选按钮,继承自android.widget.CompoundButton,在android.widget包中。
通常用法:
单选按钮要声明在RadioGroup,RadioGroup是流式布局android.widget.LinearLayout的子类。
单选按钮状态更改的监听,是要给他的RadioGroup添加setOnCheckedChangeListener(RadioGroup.OnCheckedChangeListener)监听器。注意监听器类型和CheckBox是不一样的。
6、ToggleButton--状态开关按钮
android.widget. ToggleButton开关形式的按钮,继承自android.widget.CompoundButton,在android.widget包中。常用属性设置:
android:textOn="" | 选择状态文字 |
android:textOff="" | 未选状态文字 |
7、DatePicker--日期与时间选择控件
常用方法:• getDayOfMonth():获取当前Day
• getMonth():获取当前月
• getYear()获取当前年
• updateDate(int year, int monthOfYear, int dayOfMonth):更新日期
TimePicker
• 查看一个在24小时或上午/下午模式下一天的时间。
• 常用方法
• setCurrentMinute(Integer currentMinute)设置当前时间的分钟
• getCurrentMinute()获取当前时间的分钟
• setEnabled(boolean enabled)设置当前视图是否可以编辑。
• m_TimePicker.setIs24HourView(true);设置为24小时制显示
• setOnTimeChangedListener(TimePicker.OnTimeChangedListener onTimeChangedListener)当时间改变时调用
相关包类:
• TimePickerDialog、DatePickerDialog
• 以对话框形式显示日期时间视图
• Calendar
• 日历是设定年度日期对象和一个整数字段之间转换的抽象基类,如,月,日,小时等。
相关文章推荐
- android_常用UI控件_01_TextView
- Android开发UI之常用控件的使用
- Android UI开发中的常用控件TextView
- Android入门--UI开发--常用控件(2)
- android_常用UI控件_01_TextView2
- [置顶] Android常用UI控件之PopupWindow
- Android UI开发中的常用控件Button
- android UI开发及常用控件
- android_常用UI控件_01_TextView4_rollingsubtitles效果加链接文字
- android常用UI控件总结
- Android常用UI控件 ViewGroup
- [Android新手学习笔记24]-常用的UI控件的单位、属性
- 控件置顶[置顶] Android常用UI控件之ProgressBar
- android_常用UI控件_02_EditText_01添加图片到edittext中
- 利用Android常用UI控件完成简单地注册功能
- Android UI概述和常用控件
- 常用的UI控件(android)
- Android UI 常用控件讲解
- Android 常用UI控件收藏
- 02、Android 常用布局及基本UI控件