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 的通有属性如图:


五、常用控件

 

按用途分类:

文本控件

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资源

ImageView 伸缩类型:


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

•    日历是设定年度日期对象和一个整数字段之间转换的抽象基类,如,月,日,小时等。

 

更多相关文章

  1. Android从0到完整项目(1)使用Android(安卓)studio 创建项目详解
  2. Android(安卓)UI开发 View自绘控件 分享
  3. Android(安卓)SwipeRefreshLayout 下拉刷新——Hi_博客 Android(
  4. Android(安卓)开发杂记
  5. 从底部弹出的PopupWindow
  6. Android适配器Adapter的学习(转载)
  7. Android(安卓)ApiDemo学习(五)Animation—— 4 Default Layout Ani
  8. 去掉listview的分割线和分割线的颜色,高度的设置
  9. Android常用控件以及用法

随机推荐

  1. Java基础查漏补缺:(开篇)为什么要在即将找工
  2. Android菜鸟进阶之路 TextView的使用
  3. AndroidStudio技巧之copy工程
  4. Android逆向分析概述
  5. android下变态的串口通讯
  6. Android学习札记26:深入理解Android中的消
  7. Android中转义字符
  8. Android日记之2012/02/12——Android中正
  9. Android学习之期末复习重点整理
  10. Android 中判断网络连接和GPS是否可用及H