关于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. CSS Flex

    关于flex 请看这里  https://css-tricks.com/snippets/css/a-guide-to-flexbox/ 太详细啦!!!  还通俗易懂!!! 没啥好说的 不过上面那篇文 ...

  2. .net mvc笔记3_Understanding Razor Syntax

    Understanding Razor Syntax MVC3新视图引擎的名字叫做Razor.ASP.NET视图引擎处理web页面,寻找包含在服务器端指令的特殊元素.正如我们前面已经提到的,标准的AS ...

  3. JAVA并发,线程异常捕获

    由于线程的特性,当我们启动了线程是没有办法用try catch捕获异常的,如下例: package com.xt.thinks21_2; import java.util.concurrent.Exe ...

  4. 在头文件声明全局变量和创建extern

    在头文件声明全局变量和创建extern 问题: 是否有简单的方法,在头文件里定义我的变量,同时也为它们创建extern定义? 回答: 是的.尽管这不是必需的,使用正确的宏和一个头文件还是很容易实现的. ...

  5. STL中主要的算法(一)

    一.replace() 替换算法将指定元素值替换为新值,使用原型例如以下,将迭代器[first,last)中值为old_value的元素所有替换为new_value值. 函数原型: template  ...

  6. DataSet - DataTable - DataRow 读取 xml 文件 + 搜索

    DataSet ds = XmlHelper.GetDataSetByXml(AppDomain.CurrentDomain.BaseDirectory + "/Config/ConfigN ...

  7. 关于iOS8上本地通知接收不到的问题

    在iOS8系统开发使用本地通知时,会出现如下的相关提示语: 1 Attempting to schedule a local notification2 with an alert but haven ...

  8. <转>java编译问题:使用了未经检查或不安全的操作

    使用了未经检查或不安全的操作 在本人用editplus写java文件时碰到的问题.      源代码 import java.util.*; class collection{ public stat ...

  9. jbpmAPI-7

    7.1. Introduction 业务流程的一个重要方面是人工任务管理.虽然一些执行的工作过程中可以自动执行一些任务需要执行的人类演员.jBPM支持特殊的人工任务节点内部流程建模与人类用户交互.这个 ...

  10. Android 开发笔记 “Sqlite Cursor 使用”

    使用过 SQLite 数据库的童鞋对 Cursor 应该不陌生,如果你是搞.net 开发你大可以把Cursor理解成 Ado.net 中的数据集合相当于dataReader.今天特地将它单独拿出来谈, ...