位置: 编程技术 - 正文

Android的拖放技术(android拖拽)

编辑:rootadmin

推荐整理分享Android的拖放技术(android拖拽),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:android拖拽控件实现,android可拖拽layout,拖放api,android拖拽控件实现,安卓拖动布局,android可拖动悬浮窗实现,android拖拽,android拖拽,内容如对您有帮助,希望把文章链接给更多的朋友!

在Android 3.0 以前的版本,拖放一个试图需要使用触摸(Touch)事件,而且拖动到指定的区域还需要判断坐标是否落到这一区域,很麻烦。从Android 3.0以后,Android SDK直接支持视图的拖放操作。 拖放操作需要经历的4种状态。

开始拖动 通过调用View.startDrag方法,可以让视图处于可拖动的状态,这时用户可以用手指(虚拟机当然是鼠标啦)将视图在屏幕上拖动。在视图开始拖动的时候,还会使用一种拖动阴影(Drag Shadow) 技术(View.DragShadowBuilder对象),以便使拖动的图像与原图形不同。 OnDragListener.onDrag 就是处理拖动操作的方法。方法原型: public boolean onDrag(View view,DragEvent event); 其中view参数表示当前拖动的视图,event表示拖动过程中的各种信息,其中DragEvent.getAction方法最重要,该方法可以获取具体的拖动状态,如果处于拖动状态,则返回DragEvent.ACTION_DRAG_STARTED。 onDrag方法必须返回true ,如果false,表示当前视图不能拖动。

拖动进行时 这个状态是动态的,当视图进入目标区域,目标区域的onDrag方法就会被调用,这时DragEvent.getAction方法会返回DragEvent.ACTION_DRAG_ENTERED。

放下视图 一旦视图在目标区域放下,这时DragEvent.getAction方法会返回DragEvent.ACTION_DROP,表示视图已经放在了目标区域的某个位置,然后就需要在onDrag方法中做进一步的处理。

结束拖放 当视图放下后(用户松开了手指,拖动阴影消失),不管视图放在了目标区域外,还是目标区域内,系统都会向所有可以监听拖放动作的视图发送DragEvent.ACTION_DRAG_ENDED动作。如果处于目标区域内,发送ACTION_DRAG_ENDED之前,系统会单独向该目标区域内发送ACTION_DROP动作。也就是说只要用户松开正在拖动的视图,DragEvent.getAction方法就一定会返回DragEvent.ACTION_DRAG_ENDED.因此,目标区域接收到DragEvent.ACTION_DRAG_ENDED时不一定是视图放到了目标区域,很可能在目标区域外,所以处理放下动作时要使用DragEvent.ACTON_DROP ,而不要使用DragEvent.ACTION_DRAG_ENDED。

Android的拖放技术(android拖拽)

拖动阴影 拖动阴影直接使用View.DragShadowBuilder 类 也可以继承View.DragShadowBuilder 类,实现自定义的拖动阴影类。直接使用则拖动的样式与原图像完全一样,只是左上角偏移了一点。如果要自定义阴影类,一般只需要实现View.DragShadowBuilder类的俩个方法:onProvideShadowMetrics和onDragShow。前者用于生成拖动阴影图像(Bitmap对象),后者用于在画布(Canvas)上画出拖动的阴影图像.

不多说了,还是上代码吧。

布局文件

运行程序,长按图像到红色区域,放下就会绘制到放下的位置。

工具类(2)文件操作工具类 这些工具类是由开源项目中获取得到publicclassFileUtils{/***写文本文件在Android系统中,文件保存在/data/data/PACKAGE_NAME/files目录下**@paramcontext*@parammsg*/publicstat

Linux Mint配置android环境(java+eclipse+adt+android_sdk) 今天在Linuxmint上配置android,弄了好长时间才弄好,写下安装记录,也方便以后查看。哈哈!大家如果使用Linux应该知道,linux自带了OpenJDK的java,但是功

工具类(3)HTML相关的正则表达式工具类 该工具类由开源项目中获得publicclassHtmlRegexpUtils{privatefinalstaticStringregxpForHtml=([^]*);//过滤所有以开头以结尾的标签privatefinalstaticStringregxpForImgTag=\s*img\s([^

标签: android拖拽

本文链接地址:https://www.jiuchutong.com/biancheng/384292.html 转载请保留说明!

上一篇:[个人笔记]listView属性、背景和适配器(listview)

下一篇:工具类(2)文件操作工具类(工具类的作用)

  • 税务局报税怎么操作流程
  • 所得税优惠政策最新2022
  • 不征收增值税的有哪些
  • 社保税局代缴
  • 应交税费为什么记借方
  • 9个点的发票跟6个点区别
  • 形式发票怎么写
  • 微企怎么申请补贴
  • 职工福利企业所得税
  • 小规模企业应交增值税的二级科目
  • 财产损失税务备案
  • 代扣公积金会计怎么做账
  • 冲销已结转的成本
  • 加计扣除是什么意思啊举例
  • 应扣未扣税款向谁追缴
  • 公司先注册实收资本后付账该如何做会计处理呢?
  • 计提社保个人部分需要计提吗
  • 事业单位职工福利费支出范围
  • 企业所得税需要调整的有什么科目
  • 一般纳税人提供服务税率
  • 领购增值税专用发票
  • 运费发票是含税还是不含税
  • 一般纳税人的兼职合法吗
  • 固定资产捐赠的增值税
  • 没给顾客发票需要罚款吗
  • 企业购买设备可以税前扣除吗
  • 结转固定资产净收益8万元
  • 企业为员工支付房租交个税吗
  • 调整上年少计提税金及附加
  • 应交税费的会计处理2018
  • 什么是城市维护费
  • 其他应付款调整
  • 腾讯手游助手卡顿严重
  • win11更新22468
  • PHP Warning:PHP Startup: in Unknown on line 0解决办法
  • iis6配置php网站
  • 偷渡系统可以正常接收到升级吗
  • php数组函数输出《咏雪》里有多少"片"字
  • php设计思路
  • 发票认证了但是没收到票怎么处理
  • 笔记本电池保养注意事项
  • 若依框架前后端一体化设计管理系统
  • 不能错过的只有你下架了吗
  • 罚款是否需要开发票
  • 收外汇怎么做账报税
  • 纳税检查企业所得税企业合并
  • phpcms使用教程
  • 商会年会活动策划方案模板
  • 哪些合同必须签订书面合同
  • sql数据库check 约束代码怎么设置
  • 挂预收账款怎么处理
  • 中小企业估值
  • 移动平均加权法怎么算
  • 以前年度少记税怎么办
  • 跨区域预缴税款流程
  • 税控盘退费怎么做会计分录
  • 固定资产错记到费用了怎么办
  • 企业支付宝提现到对公账户要交税吗
  • 汽车修理厂利润
  • 其他流动资产为什么包括应交增值税
  • 货款尚未收到属于什么会计科目
  • sql server备份方法
  • mysql的主从复制模式
  • mysql重置初始密码
  • VMware虚拟机中不支持虚拟化
  • 电脑防火墙在哪里设置
  • win8系统怎样关机
  • windos8怎么样
  • 强缓存标志
  • 如何打开win7
  • cocos2dx4.0教程
  • Coroutine couldn't be started because the the game object 'GameController' is inactive!
  • shell脚本自动化
  • js浅拷贝的方法
  • android webview获取文本
  • vue-cli 使用 报错
  • python可变参数和不可变参数
  • webpack配置文件在哪
  • 使用权资产
  • 电子办税服务厅怎么开电子发票
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设