第三讲 高级用户界面设计-视图组件 View

  • 视图组件
  • 小部件(Widgets)
  • 菜单
  • 对话框
  • 消息提示条
布局、视图、小部件的相同点和不同点:
相同点:这三者都是可以显示的组件
不同点:从角色定义上
布局:注重整体,好比设计图
小部件(widget):注重的是细节,好比装饰品
视图(view):注重的是组件的组合,好比组合家具

本讲重点讲解各视图组件和小部件的使用

一、视图组件

1、视图的使用模式:

定义和使用:和布局组件的定义一样,也有在运行时创建和使用XML这两种方式。
和布局组件的不同之处在于,布局组件一般都是布局资源的根元素。而视图组件更多的 包含于布局之内,使用时必须使用findViewByID()方法,但也有个别视图组件标记根元素:如画廊视图和网页视图。使用时可以直接设置为内容,引用方法和布局一样:R.layout.<文件名>,setContentView()

2、视图组件的事件响应

当用户与屏幕显示的组件进行交互时,组件需要侦听用户的选择,并进行相应的响应。下表是view组件的事件及侦听器类型举例

事件侦听器类型对应的事件说明
View.OnClickListeneronClick()点击事件 
View.OnFocusChangeListeneronFocusChange()焦点改变事件
View.OnKeyListeneronKey() 击键事件
View.OnTouchListener onTouh()触摸事件
View.OnLongClickListener onLongClick() 长点击事件
View.OnCreateContextMenuListener onCreatContextMenu() 创建上下文菜单事件
 
在Android平台中,开发人员可以通过三种方式来设置事件侦听:
1)、先定义事件侦听器,后注册给需要侦听用户动作的组件:

private OnClickListener mListener = new OnClickListener() {
	@Override
	public void onClick(View v) {
		if (v.getId() == R.id.BTN_ACTION) {
			Toast.makeText(EventHandleDemoAct.this, "Hello, Android!",
					Toast.LENGTH_SHORT).show();
		}
	}
};
mBtnAction.setOnClickListener(mListener);

2)、重载用于侦听用户动作的事件回调函数
public class EventHandleDemoAct extends Activity implements OnClickListener {
	public void onClick(View v) {
		// TODO Auto-generated method stub
		if (v.getId() == R.id.BTN_ACTION) {
			Toast.makeText(EventHandleDemoAct.this, "Hello, Android!",
					Toast.LENGTH_SHORT).show();
		}
	}
}
mBtnAction.setOnClickListener(this);

参考例子: Ch03_EventHandleDemo

3)、在XML文件中使用android:onClick属性配置对应的方法
在Activity中编写一个包含View类参数的方法,并且将要触发的动作代码放在该方法中,然后再布局文件中,通过android:onClick属性指定对应的方法名实现。

public void myClick(View view){
//编写要执行的动作代码
}
在布局文件中通过android:onClick=“myClick”语句添加点击事件监听器

二、小部件(widgets)

1、widgets介绍:

小部件widget都是指在界面框架中比较独立的视图组件,不作为容器组件。 例如:文本视图:TextView、按钮Button、图片视图ImageView

小部件定义在android.widget包中

小部件既可以在XML中定义,也可以在代码中定义。在XML中小部件的定义都是在布局或者一些视图组件的定义体内,不会定义为布局资源的根元素。

2、小部件的使用:

引用资源:对于XML中定义的小部件,对小部件的使用,也必须先使用资源填充器inflater对XML资源进行填充Inflate;然后通过该资源文件对应的Activity组件或者小部件的父视图对象的findViewById()方法来获取资源ID指定的小部件对象实例

动态创建:在java代码中可以直接使用new语句来创建小部件对象实例,然后再添加到父视图中,添加时需要指明布局参数,定义如何放置小部件

3、事件响应:

从设计角度,小部件正是用于与用户进行交互的。对其事件的响应也是最全面的
在使用的过程中,必须先注册相应类型事件侦听器(Listener),在该侦听器的事件回调方法中再对该事件进行相应处理。

4、具体小部件widget介绍:

显示和编辑文本的组件:在SDK中,提供了TextView、EditText组件,分别用来显示和编辑文本,还提供了MultiAutoCompleteTextView组件来自动完成需要输入的文本内容。














  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值