关于DragEvent Google Android API中是这么说的

Represents an event that is sent out by the system at various times during a drag and drop operation. It is a complex data structure that contains several important pieces of data about the operation and the underlying data.

大致意思:DragEvent是在执行拖放操作时系统在不同时间所发出的一个事件。它是一个复杂的数据结构,其中包含了一系列重要的有关这个拖放操作的数据和底层的数据。

中事件类型:ACTION_DRAG_ENDED、ACTION_DRAG_ENTERED、ACTION_DRAG_EXITED、ACTION_DRAG_LOCATION、ACTION_DRAG_STARTED、ACTION_DROP

下面,将详细介绍这几种事件:

ACTION_DRAG_STARTED

当拖放操作开始时,View收到的事件。

ACTION_DRAG_ENDED

当一个View在拖放操作中发生了形变(View发生了变化),应该在响应这个事件时变回原来的View(normal状态时的View)。

一般View收到ACTION_DRAG_STARTED的事件后,都会在整个DragEvent事件结束时收到ACTION_DRAG_ENDED事件,除非,在拖放事件结束时,次View不可见。

ACTION_DRAG_ENTERED

当Drag操作进入View的边界时,就会发出此事件。

如果一个View接收Drag操作,它就会在当它(这个View)成为Drag的目标时,改变样子(View发生了变化),以此来响应ACTION_DRAG_ENTERED事件。

当Drag操作离开View后,再次进入VIew时,会先收到 ACTION_DRAG_ENTERED 的事件,之后才收到ACTION_DRAG_LOCATION事件。

ACTION_DRAG_EXITED

当拖放操作离开View的边界框时的,View收到的事件。View可以通过改变样子的方式来告诉用户,它不在是Drag操作的目标了。

ACTION_DRAG_LOCATION

当ACTION_DRAG_ENTERED之后,拖影仍在View的边界内,就发出这个信号。getX()和getY()函数可以获得,Drag操作在View内的坐标。

View接收到ACTION_DRAG_ENTERED事件始终在接受到 ACTION_DRAG_LOCATION事件之前。

ACTION_DROP

用户释放拖放前,拖放点在View内部,就会发送ACTION_DROP事件。View可以通过调用getClipData()来检索DragEvent中的数据

Android学习之DragEvent的更多相关文章

  1. Android学习路线总结,绝对干货

    title: Android学习路线总结,绝对干货 tags: Android学习路线,Android学习资料,怎么学习android grammar_cjkRuby: true --- 一.前言 不 ...

  2. Android 学习资源

    下面这些资源对Android开发来说是很有帮助的! 最常用的: Android开发官方网站:http://developer.android.com/index.html 这个网站应该是Android ...

  3. Android学习资料收集

    1.Android 学习之路 http://stormzhang.com/android/2014/07/07/learn-android-from-rookie/

  4. Android学习——第一个NDK程序

    在前面的学习中,我们已经讲解了关于NDK编程的环境搭建流程,简单的使用我们也通过官网本身自带的例子进行说明了.可是相信大家一定还存在这么的一个疑惑:“如果我要自己利用NDK编写一个Android应用, ...

  5. Android学习——windows下搭建Cygwin环境

    在上一篇博文<Android学习——windows下搭建NDK_r9环境>中,我们详细的讲解了在windows下进行Android NDK开发环境的配置,我们也讲到了在NDk r7以后,我 ...

  6. Android学习——windows下搭建NDK_r9环境

    1. NDK(Native Development Kit) 1.1 NDK简介 Android NDK是一套允许开发人员使用本地代码(如C/C++)进行Android APP功能开发的工具,通过这个 ...

  7. Android学习第三天-打包常用命令

    在前面<Android学习第一天-adb常用命令>和 <Android学习第二天-android常用命令>两篇博文中,我们重点讲解了adb和android的常用命令,下面我们讲 ...

  8. 【Android学习】《Android开发视频教程》第一季笔记

    视频地址: http://study.163.com/course/courseMain.htm?courseId=207001 课时5    Activity基础概念 1.Android开发技术结构 ...

  9. Android 学习资料收集

    收集整理这份资料灵感来自于 trip_to_iOS, 征得同意引用了该资料的开头描述 收集整理这份资料主要帮助初学者学习 Android 开发, 希望能快速帮助到他们快速入门, 找到适合自己学习资料, ...

随机推荐

  1. Mysql笔记之 -- 小试MYSQL主从配置

    mysql主从配置: 硬件: 两台服务器 1.Ubuntu 12.04.4 LTS (GNU/Linux 3.2.0-60-generic-pae i686)  2.Ubuntu 12.04.4 LT ...

  2. Spring 装配Bean

    Spring 装配Bean 装配解释: 创建应用对象之间协作关系的的行为通常称为装配(wiring),这也是依赖注入的本质 依赖注入是Spring的基础要素 一 : 使用spring装配Bean基础介 ...

  3. ASP.NET动态的网页增删查改

    动态页面的增删查改,不多说了,直接上代码 跟前面的一般处理程序一样我上用的同一套三层,只是UI层的东西不一样,在纠结着要不要重新在上一次以前上过的代码: 纠结来纠结去,最后我觉得还上上吧,毕竟不上为我 ...

  4. c 结构体struct

    struct 定义初始化 #include<stdio.h> typedef struct stuInfo { ]; //姓名 int stuId; //学号 int age; //年龄 ...

  5. C++ 变量的声明与定义的区别

    变量声明和定义的区别 我们在程序设计中,时时刻刻都用到变量的定义和变量的声明,可有些时候我们对这个概念不是很清楚,知道它是怎么用,但却不知是怎么一会事,下面我就简单的把他们的区别介绍如下:(望我的指点 ...

  6. [NewCoder]复杂链表的复制

    看下面一个链表结点的定义: struct ComplexListNode { int val; struct ComplexListNode *next; struct ComplexListNode ...

  7. html的显示消息和留言板

    <div class="inner_content"> <c:forEach items="${notices}" var="n&q ...

  8. linux里source、sh、bash、./有什么区别

    在linux里,source.sh.bash../都可以执行shell script文件,那它们有什么不同吗? ----------- 1.source source a.sh 在当前shell内去读 ...

  9. Python一些字符串判断和转换

    设s是字符串: s.isalnum()      判断所有字符都是数字或者字母 s.isalpha()  判断所有字符都是字母 s.isdigit()  判断所有字符都是数字 s.islower() ...

  10. IOS 定位服务与地图的应用开发

    1.定位服务 现在的移动设备很多都提供定位服务,IOS设备提供3种不同定位途径: (1)WiFi定位,通过查询一个WiFi路由器的地理位置的信息,比较省电:IPhone,IPod touch和IPad ...