Android UI布局与控件
Posted 胖子luffy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android UI布局与控件相关的知识,希望对你有一定的参考价值。
一、View类的常用xml属性:【了解】
①.android中所有的UI(用户界面)元素都是使用View和ViewGroup对象建立的②.View是一个可以将一些信息绘制在屏幕上并与用户产生交互的对象③.ViewGroup是一个包含多个的View和ViewGroup的容器,用来定义UI布局。④.Android提供了一系列的View和ViewGroup的子类,开发者可以灵活地组合使用它们来完成界面布 局、界 面元素绘制和用户交互等工作⑤.开发者还可以选择性地继承一些系统提供的View,来自定义View,把自己定义的界面元素显示给用户。
UI视图结构
(一)、类结构:
java.lang.Object
? android.view.View
(二)、View及其子元素常用属性:(各种布局及控件的共同属性)( 三 ).Android中UI布局的嵌套【掌握】
- android:id
- android:background 背景图或背景色
- android:onClick 为该控件的单击事件绑定监听器
- android:padding 设置控件四周的填充区域
- android:visibility 设置该控件是否可见
- android:alpha 设置该组件透明度
- android:layout_height 子组件的布局高度
- android:layout_width 子组件的布局宽度
- android:layout_margin 设置子组件的外边距
Android的UI开发使用层次模型来完成,一般都是在一个ViewGroup中嵌套多层ViewGroup,每一层中含有任意数目的View。
注意:嵌套层次不要超过10层,否则会大幅降低运行效率,上图为3层
二、Android UI控件:
三、基本控件:——TextView【掌握】(一)、控件名称:【标红色的为常用的】
- TextView 文本视图
- EditText 文本编辑框
- Button 按钮
- ImageView、Gallery 图像视图、画廊(建议过期)
- ImageButton 图片按钮
- ToggleButton 、Switch 开关按钮、开关
- RadioButton 单选按钮
- CheckBox 多选框
- Spinner 下拉列表
- AutoCompleteTextView 自动完成文本框
- ProgressBar 进度条
- SeekBar 拖动条
- RatingBar 星级评分条
- TimePicker、DatePicker 时间选择器、日期选择器
- AnalogClock、DigitalClock 模拟时钟、数字时钟
- Dialog(AlertDialog、ProgressDialog、TimePickerDialog、DatePickerDialog)提示对话框、进度对话框、时间选择对话框、日期选择对话框
- ListView、GridView 列表视图【最重要的UI组件】、 网格视图
- ScrollView 滚动视图
- ExpandableListView 可展开列表视图
- WebView 网页视图
- SearchView 搜索框
- TabHost 书签选项卡
- Notification 、Toast 通知 、 吐司(短时提醒)
- Menu(OptionMenu /SubMenu、ContextMenu) 菜单(选项菜单、上下文菜单)
- ImageSwitcher、TextSwitcher 图像切换器、文本切换器
- ActionBar 动作导航条
(一)、TextView类结构:
java.lang.Object? android.view.View? android.widget.TextView
(二)、TextView 常用属性:
1、andorid:text 设置文本的内容2、 android:textColor 设置文本的颜色3、 android:textSize 设置文本的字体大小(sp)4、andorid:height 设置文本的高度,以像素为单位5、 android:width 设置文本的宽度,以像素为单位6、 android:inputType 设置文本的类型。例如是普通文本,还是email,password,数字等。7、 android:singleLine 设置文本是否是单行显示。8、android:gravity 设置文本框内文本的对齐方式。可选项有:top、bottom、left、right、center、fill、center_vertical、center_horizontal、 fill_horizontal等等。这些属性值也可以同时指定,各属性值之间用竖线隔开。例如right|bottom9、android:drawableLeft 用于在文本框左侧绘制图片。该属性值通过“@drawable/图片文件名”来设置。10、android:drawableRight 用于在文本框左侧绘制图片。该属性值通过“@drawable/图片文件名”来设置。11、android:drawableTop 用于在文本框上侧绘制图片。该属性值通过“@drawable/图片文件名”来设置。12、android:drawableBottom 用于在文本框下侧绘制图片。该属性值通过“@drawable/图片文件名”来设置。13、android:autoLink 给指定的文本增加可单击的超链接。可选项为:none、web、email、phone、map和all。14、android:hint 设置当文本框内文本内容为空时,默认显示的提示性文字。
( 三 ).TextView显示富文本:
// 将html的界面设置为TextView的内容
tv.setText(Html.fromHtml(sb.toString()));
// 使TextView内部的超链接可以响应用户的点击
tv.setMovementMethod(LinkMovementMethod.getInstance());
四、基本控件:——EditText【掌握】
(一)、 EditText 类结构:
java.lang.Object? android.view.View? android.widget.TextView? android.widget.EditText
所以 EditText 继承了TextView的所有属性。常用属性:
五、基本控件:——Button【掌握】
(二)、android:inputType的可选项:(三)、EditText常用方法:
- android:inputType="textPersonName"
- android:inputType="textPassword"
- android:inputType="numberPassword"
- android:inputType="textEmailAddress"
- android:inputType="phone"
- android:inputType="textPostalAddress"
- android:inputType="time"
- android:inputType="date"
- android:inputType="number"
1、setText ()2、getText ()
(一)、Button类结构:
java.lang.Object? android.view.View? android.widget.TextView? android.widget.Button
所以Button继承了TextView的所有属性。
六、Android事件处理的概述【掌握】
(一)、概念:
(一)、概念:
在Android中,我们可以通过事件处理使UI与用户互动(UI Events)。
Android提供了非常良好的UI事件处理机制。View是绘制UI的类,每个View对象都可以向Android注册一个事件监听器。每个事件监听器都包含一个回调方法(callback method),这个回调方法(callback method)主要的工作就是回应或处理用户的操作。具体形式则是以事件监听器(event listener)的方式來“监听”用户的动作。
(二)、Android UI事件处理的两套机制:
1、基于监听和回调的事件处理机制(event listener):
就是为Android中的控件绑定特定的事件监听器。一旦该控件监听到有相应的动作发生,则该动作会触发事件监听器,而该监听器会调用内部的回调方法做出相应的响应。事件监听器的核心就是它内部包含的回调方法。
2、另外一种UI事件的机制为事件处理器(event handler):
event handler与event listener是不一样的处理机制。后续课程中会讲到多线程的Handler、Looper消息传递机制。
(三)、Android种常用的事件监听器及其回调方法(callback method):
View.OnClickListener : onClick() 单击事件View.OnLongClickListener : onLongClick() 长按事件View.OnFocusChangeListener :onFocusChange() 焦点改变事件View.OnKeyListener : onKey() 按键事件View.OnTouchListener : onTouch() 触摸屏事件View.OnCreateContextMenuListener: onCreateContextMenu() 创建上下文菜单事件
【备注:】请同学们在这里增添新学到的事件监听类:
七、事件监听器的几种写法示例:
1、RadioGroup.OnCheckedChangeListener 单选按钮组的勾选项改变监听器
2、CompoundButton.OnCheckedChangeListener 多选框勾选项改变监听器
3、AdapterView.OnItemSelectedListener 下拉列表框条目被选中监听器
4、AdapterView.OnItemClickListener ListView的条目单击监听器
5、AdapterView.OnItemClickListener GridView的条目单击监听器
6、DatePicker.OnDateChangedListener DatePicker的日期改变监听器7、AbsListView.OnScrollListener ListView的滑动监听器
七、事件监听器的几种写法示例:
【备注:】其实事件监听器,就是实现了一个特定接口的Java类的实例。
监听器--->事件--->事件源
消防队--->着火--->房子
实现事件监听器有几种形式:
1、内部类形式;
2、外部类形式;
3、Activity实现监听器接口,自身作为事件监听器类;
4、匿名内部类的形式创建事件监听器,并实现监听器内的方法。
(Android开发中常用匿名内部类作为监听器)
以按钮的单击事件为例:
1.在xml文件里,设置onClick属性-->在代码中:添加相应的方法,必须带view参数;
2.匿名内部类的方式:
bt2.setOnClickListener(new OnClickListener() {
@Overridepublic void onClick(View v) {
Toast.makeText(getApplicationContext(), "2222被点击了", 0).show();
}
});
3.写一个内部类:
4.activity实现onClickListener接口:
bt4.setOnClickListener(this);@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.btn_click4:Toast.makeText(getApplicationContext(), "444被点击了", 0).show();break;default:break;}
}
八、基本控件:——ImageView:
(一).ImageView的类结构
java.lang.Object? android.view.View? android.widget.ImageView(二).ImageView的常用属性:
①、andorid:src 设置图片来源。属性值为android:src="@drawable/图片名称"②、android:adjustViewBounds 用于设置 ImageView 是否调整自己的边界,来保持所显示图片的长宽比例。属性值为true或false③、 android:maxHeight 设置 ImageView 的最大高度。需要先设置android:adjustViewBounds为true,否则不起作用。④、andorid:maxWidth 设置 ImageView 的最大宽度。需要先设置android:adjustViewBounds为true,否则不起作用。⑤、 android:scaleType 设置所显示的图片如何缩放或移动,以适应ImageView的大小。
设置所显示的图片如何缩放
以上是关于Android UI布局与控件的主要内容,如果未能解决你的问题,请参考以下文章
Android 开发 -- 开发第一个安卓程序Android UI开发(布局的创建:相对布局和线性布局控件单位:px pt dp sp常用控件 常见对话框ListView)