1、Android拖放框架的作用?

利用Android的拖放框架,可以让用户用拖放手势把一个View中的数据移到当前layout内的另一个View中去。

2、拖放框架的内容?

1)拖放事件类

2)拖放监听器

3)其他辅助的方法和类

3、拖放过程?

拖放过程有四个基本步骤:

1)启动 为了响应用户开始拖动的手势,需要调用View的startDrag方法来通知系统。startDrag方法的参数需要指定所拖动的数据、元数据和绘制拖动阴影的回调方法。

作为响应,系统首先通过回调来获取拖动阴影,然后在设备上显示这个阴影。

4、例子

长按某个View,进行拖动操作。

1)创建用于移动数据的ClipData和ClipData.Item。在ClipData对象中,需要给出存放元数据的ClipDescription对象。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

private static final String IMAGEVIEW_TAG ="icon bitmap"

ImageView imageView =new ImageView(this);

imageView.setImageBitmap(mIconBitmap);

imageView.setTag(IMAGEVIEW_TAG);

...

imageView.setOnLongClickListener(new View.OnLongClickListener() {

public boolean onLongClick(View v) {

ClipData.Item item =new ClipData.Item(v.getTag());

ClipData dragData =new ClipData(v.getTag(),ClipData.MIMETYPE_TEXT_PLAIN,item);

View.DragShadowBuilder myShadow =new MyDragShadowBuilder(imageView);

v.startDrag(dragData,// the data to be dragged

myShadow,// the drag shadow builder

null,// no need to use local data

0          // flags (not currently used, set to 0)

);

}

});

2)定义MyDragShadowBuilder

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

private static class MyDragShadowBuilderextends View.DragShadowBuilder {

private static Drawable shadow;

public MyDragShadowBuilder(View v) {

super(v);

shadow =new ColorDrawable(Color.LTGRAY);

}

@Override

public void onProvideShadowMetrics (Point size, Point touch) {

private int width, height;

width = getView().getWidth() /2;

height = getView().getHeight() /2;

shadow.setBounds(0,0, width, height);

size.set(width, height);

touch.set(width /2, height /2);

}

@Override

public void onDrawShadow(Canvas canvas) {

shadow.draw(canvas);

}

}

JAVASCRIPT事件详解-------原生事件基础....

javaScirpt事件详解-原生事件基础(一)   事件 JavaScript与HTML之间的交互是通过事件实现的.事件,就是文档或浏览器窗口中发生的一些特定的交互瞬间,通过监听特定事件的发生,你能 ...

javaScirpt事件详解-原生事件基础(一)

事件 JavaScript与HTML之间的交互是通过事件实现的.事件,就是文档或浏览器窗口中发生的一些特定的交互瞬间,通过监听特定事件的发生,你能响应相关的操作.图片引用:UI Events 事件流 ...

JavaScript事件详解-Zepto的事件实现(二)【新增fastclick阅读笔记】

正文 作者打字速度实在不咋地,源码部分就用图片代替了,都是截图,本文讲解的Zepto版本是1.2.0,在该版本中的event模块与1.1.6基本一致.此文的fastclick理解上在看过博客园各个大神 ...

JavaScript事件详解-zepto的事件实现

zepto的event 可以结合上一篇JavaScript事件详解-原生事件基础(一)综合考虑源码暂且不表,github里还有中文网站都能下到最新版的zepto.整个event模块不长,274行,我们 ...

DOM——事件详解

事件 事件:触发-响应机制 事件三要素 事件源:触发(被)事件的元素 事件名称: click 点击事件 事件处理程序:事件触发后要执行的代码(函数形式) 事件的基本使用  var box = docu ...

Android 广播大全 Intent Action 事件详解

Android 广播大全 Intent Action 事件详解 投稿:mrr 字体:[增加 减小] 类型:转载 时间:2015-10-20我要评论 这篇文章主要给大家介绍Android 广播大全 In ...

H5 拖放事件详解

拖放事件 H5的拖放事件提供了多个接口: 1.drag:当元素或者选中的文本被拖动时触发(每几百毫秒触发一次),应用在被拖拽元素上 2.dragend:当拖动操作结束时触发(通过释放鼠标按钮或者点击转 ...

JavaScript事件详解-jQuery的事件实现(三)

正文 本文所涉及到的jQuery版本是3.1.1,可以在压缩包中找到event模块.该篇算是阅读笔记,jQuery代码太长.... Dean Edward的addEvent.js 相对于zepto的e ...

第三天:JS事件详解-事件流

学习来源: F:\新建文件夹 (2)\HTML5开发\HTML5开发\04.JavaScript基础\6.JavaScript事件详解 学习内容:  1)基础概念 2)举例说明: 代码如上,如果用事件 ...

随机推荐

HighchartsJS创建环形带标识的图表实例

HighchartsJS 是一款功能强大.开源.美观.图表丰富.兼容绝大多数浏览器的纯js图表库,目前最新版本库是Highcharts 4.1.9.另外,HighchartsJS还提供很多的插件和第三 ...

MySQL常用SQL语句

一.数据库操作 1.创建数据库: Mysql> CREATE DATABASE databaseName; Mysql数据库的数据文件默认存放在/usr/local/mysql/var/目录下, ...

Python开发者须知 —— Bottle框架常见的几个坑

Bottle是一个小巧实用的python框架,整个框架只有一个几十K的文件,但却包含了路径映射.模板.简单的数据库访问等web框架组件,而且语法简单,部署方便,很受python开发者的青睐.Pytho ...

MVC的异步,Entity Framework的异步,ADO.NET的异步,

MVC的异步化改造 无比轻松,只要把ActionResult改为async Task: public async Task

正则应用—queryURLParameter()

在项目中,我们做详情页的时候,需要获取到用户从哪里来点击进来,获取到用户的点击地址,根据不同的地址传进的参数向服务器获取不同的数据,然后加载不同的详情页面. 大部分企业都采用字符串截取的方式,quer ...

c++中构造函数 、析构函数的作用域详解

我们知道,在c++中,析构函数是在函数作用域尾部执行析构函数,从而释放对象,但是有一种情况下,析构函数作用域发生变化,请看下面的例子,定义了一个Stock类,Stock类存放在stock.h中,主调用 ...

cin\cout输入输出控制

输入输出流的控制符 控制符 作 用 dec 设置数值的基数为10 hex 设置数值的基数为16 oct 设置数值的基数为8 setfill(c) 设置填充字符c,c可以是字符常量或字符变量 setpr ...

Freeline--Android平台上的秒级编译方案

Freeline 技术揭秘 Freeline是什么? Freeline是蚂蚁金服旗下一站式理财平台蚂蚁聚宝团队15年10月在Android平台上的量身定做的一个基于动态替换的编译方案,5月阿里集团内部 ...

Generative Adversarial Nets[Vanilla]

引言中已经较为详细的介绍了GAN的理论基础和模型本身的原理.这里主要是研读Goodfellow的第一篇GAN论文. 0. 对抗网络 如引言中所述,对抗网络其实就是一个零和游戏中的2人最小最大游戏,主要 ...

Scanner 随机数

import java.util.Scanner;                                               import java.util.Scanner; Sc ...

android 拖动 点击事件,Android事件详解——拖放事件DragEvent相关推荐

  1. Android 系统(199)---Android事件分发机制详解

    Android事件分发机制详解 前言 Android事件分发机制是Android开发者必须了解的基础 网上有大量关于Android事件分发机制的文章,但存在一些问题:内容不全.思路不清晰.无源码分析. ...

  2. View的事件体系之三 android事件分发机制详解(下)

    接着上一篇来分析事件分发机制,在看了各位大牛的关于事件分发机制的分析后茅塞顿开,之前看过好几遍郭霖,弘扬以及玉刚大神关于事件体系的讲解,一直看不懂,比较模糊,最近复习时,看到一篇博文,写的相当精彩,看 ...

  3. android listview ontouchlistener,Android ListView监听滑动事件的方法(详解)

    ListView的主要有两种滑动事件监听方法,OnTouchListener和OnScrollListener 1.OnTouchListener OnTouchListener方法来自View中的监 ...

  4. android应用市场点击下载APK安装详解

    Android系统启动篇 1,<android系统启动流程简介> 2,<android init进程启动流程> 3,<android zygote进程启动流程> 4 ...

  5. android仿知乎按钮动效,Android仿知乎客户端关注和取消关注的按钮点击特效实现思路详解...

    先说明一下,项目代码已上传至github,不想看长篇大论的也可以先去下代码,对照代码,哪里不懂点哪里. 代码在这https://github.com/zgzczzw/ZHFollowButton 前几 ...

  6. android自定义view案例,Android自定义View的实现方法实例详解

    一.自绘控件 下面我们准备来自定义一个计数器View,这个View可以响应用户的点击事件,并自动记录一共点击了多少次.新建一个CounterView继承自View,代码如下所示: 可以看到,首先我们在 ...

  7. android 模拟手指点击,『Android Tip』-- 模拟手势操作

    平时 Android 开发中总会遇到奇葩的功能或者需求,这里做个记录和积累,以便后面开发过程中遇到类似的问题,可以快速的解决.Android tips 前言 这个版本终于快结束了,历时一个月的时间,这 ...

  8. 安卓自定义View进阶-事件分发机制详解

    原文地址:http://www.gcssloop.com/customview/dispatch-touchevent-source Android 事件分发机制详解,在上一篇文章 事件分发机制原理  ...

  9. Android 融云IM集成以及使用详解(二)

    Android 融云IM集成以及使用详解(二) 上篇讲解了集成和好友列表和消息记录的使用,这篇将讲解聊天界面和群聊界面的使用 先附上一张效果图 先介绍布局文件 <LinearLayout xml ...

最新文章

  1. Git设置忽略文件/文件夹
  2. mysql 主从同步 工具_mysql主从同步工具maatkit安装
  3. javaone_旅行报告:JavaOne 2013 –重归荣耀
  4. eclipse32位python版下载_python之(3)Python Eclipse+PyDec下载和安装教程(超级详细)...
  5. java maven本地库导入本地包
  6. 家里还装摄像头?看完B站直播毛骨悚然!
  7. Unity3D 中的定制特性以及简单的编辑器扩展案例(1)
  8. 云计算系统典型物理架构
  9. 行测题中逻辑判断题的规律
  10. 带你一起学习工程经济学!与生活相关的一些实用的公式。研究经济学的理由就是【为了避免被经济学家欺骗】
  11. matlab怎么设置步长,请教matlab中怎么对变步长的数据进行处理
  12. 轩辕剑--资料集(三)
  13. 2013年12月CCF软考试题
  14. JS盒子点击时跟随鼠标移动
  15. 跨平台音视频jQuery插件:jPlayer
  16. 【服务器管理】搭建FTP
  17. mysql替换成对括号
  18. 使用CentOS7.4搭建bgp网络实验Quagga
  19. 计算机地图制图的过程,第四章计算机地图制图过程.ppt
  20. C#线程安全集合类说明(2): ConcurrentBag<T>

热门文章

  1. 2022年1月医疗机器人1月份盘点与分析
  2. html图片怎么设置热区不大小,店铺装修技巧之图片尺寸大全!收藏必备!随时可查看!...
  3. Latex安装和示例
  4. eclipse中的中文乱码
  5. C++ SeqList 顺序表 类模板的实现与测试
  6. PHP 根据身份证号识别 - 星座,生肖,性别
  7. 我打开的etc内是一个imhosts.sam,而不是hosts.txt,没有找到hosts文件,怎么办?
  8. P-MOS和N-MOS的作用(供非专业人士参考)(已解决)
  9. 怎么在网上赚钱?这几个副业也许会适合你
  10. python中复制n次字符串_Python 字符串操作方法大全