Version:1.0 StartHTML:0000000181 EndHTML:0000055013 StartFragment:0000022220 EndFragment:0000054973 SourceURL:file:///Y:\Desktop\学习\新建文件夹\Drag%20and%20Drop.docx
Drag and Drop
一、拖放机制概述
含义:拖放操作是手指触摸屏幕上的某一对象,然后拖动该对象,最后在屏幕的某个位置释放该对象并执行某种操作,如删除、卸载、启动、复制数据等。
作用:允许以图形化的手势操作完成某项任务。
拖放操作的优势:直观、易用、简化操作步骤。
SDK3.0提供了支持拖放操作的编程机制,简称拖放机制,拖放机制是为数据移动设计的,但能够用于其它的UI操作。如Android系统自带的将托盘内图标代表的应用程序以拖放的方式卸载。
拖放机制比自编程实现拖放操作更方便,优点包括:
1、提供了对所有View支持拖放操作的API,无需自定义View。
2、系统自动判断手指的位置。
3、由系统自动绘制影子图形。
4、系统提供了拖放对象与目标对象之间传递数据的机制,简化了数据传递的编程。
5、提供了更多的拖放事件,如按下、抬起、释放、进入目标区域、仍在目标区域、离开目标区域、结束拖放等六个事件。并且这些事件由系统捕捉、发送,开发者只需编写处理这些事件的代码。
拖放机制包括:
1、响应拖放操作事件的接口;
2、存放拖放操作相关信息的类;
3、启动拖放操作的方法;
4、绘制拖放过程中影子图形的类;
5、传递数据的类。
(二)拖放编程步骤
步骤1、设置被拖放对象的点击或长按或触摸的事件响应代码,在该响应代码中完成以下操作:
1)设置传送给目标对象的数据;
2)设置拖放过程中绘制影子图形的对象;
3)启动拖放操作。
步骤2、编写被拖放对象和拖放目标对象的响应拖放事件的代码。
(三)相关类-ClipData
(四)相关类-DragShadowBuilder
1、概述
在拖拽和放下操作期间,系统会显示一张用户拖动的图片。对于要移动的数据,这张图片就代表了被拖动的数据。对于操作,这张图片就代表了拖动操作的某些外观。
这张图片被叫做影子图形,由DragShadowBuilder对象来创建。
DragShadowBuilder类是View类的内部类。
2、构造方法
3、与拖拽相关的方法
(五)相关接口-OnDragListener
1、概述
OnDragListener接口用于响应拖拽的相关事件。
2、接口中声明的方法
(六)相关类-DragEvent
1、概述
系统用DragEvent对象存储拖放事件的相关信息。DragEvent对象包含了一个操作类型,用于告诉监听器在拖放过程中发生的事件。该对象还根据操作类型,包含了其它的数据。
2、拖放事件常量
有六种与拖放相关的事件,这些事件在DragEvent类中用六个常量表示,如下表所示:
3、常用方法