位置: 编程技术 - 正文

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)文件操作工具类(工具类的作用)

  • 税金及附加属于管理费用吗
  • 营业成本包括哪些费用
  • 天然气管道维修收费标准
  • 城市基础设施配套费减免
  • 事业单位法人证书查询
  • 记账人和复核人是一个人吗
  • 单位为个人负担工资、薪金所得的个税,怎么征收个税
  • 哪些车辆可退还车款
  • 计提工资和应付职工薪酬怎么不一样
  • 工程款发票开给委托方要如何处理?
  • 购买股票如果公司亏损
  • 年末计提存货跌价准备
  • 营改增后增值税专用发票抵扣规定
  • 委外的加工费专用发票怎么开?
  • 所得税季报固定资产加速折旧表资产原值
  • 增值税普票需要填写什么内容
  • 营改增后如何纳税
  • 汇算清缴后如何进行调帐处理
  • 纳税等级信息查询
  • 学校的房子归哪里管
  • excel自动计算增值税
  • 写支票人民币大写有角需要写整吗
  • 税局代增值税专用发票 需要带什么
  • 商场 折扣
  • 利润的三个计算口径
  • mac打印机状态暂停怎么处理
  • win11怎么设置声音
  • 经济成本和会计成本的大小
  • 企业买金税盘做什么科目
  • 税务实名认证是不是就是税务登记
  • 盆栽玉树的养殖方法
  • 潘塔纳尔湿地位于巴拉圭盆地
  • 购车的车辆购置税怎么交
  • 支付境外培训费代扣啥税
  • 差旅费住宿费专票抵扣联贴在哪里
  • adan算法
  • springboot比spring做了哪些改进
  • vant ui
  • 代理记账费用计入什么二级科目
  • 收据能抵成本吗
  • window批处理文件
  • 租赁公司成本如何计算
  • sql查表结构语句
  • 专项附加可以随便填吗
  • 旅行社开具的发票抵扣
  • 软件续费应记什么科目
  • 设备租赁公司如何赚钱最快
  • 存货报废计入
  • 进项税销项税增值税的区别
  • 固定资产入账标准最新规定企业
  • 工程未完工开了发票怎么做账
  • 发票项目名称可以自定义吗
  • mysql的分区表
  • mysql orch
  • linux下mysql5.7.19(tar.gz)安装图文教程
  • sql里面时间函数格式
  • dockers容器
  • bios各项参数的意义
  • win7如何设置共享
  • executor进程
  • .bas是什么文件
  • win10系统怎么找到我的电脑
  • windows10秋季更新
  • macbook如何登录微信
  • linux测试端口连接
  • linux常用命令查询
  • ReactNative之FlatList的具体使用方法
  • 用wasfile.zip智能批量删除文件
  • 设计一个windows
  • Node.js中的什么模块是用于处理文件和目录的
  • 自动重启服务脚本
  • bootstrap基础教程书籍
  • jquery easyui插件
  • unity获取鼠标点击的位置
  • python打包成deb
  • android开源小项目
  • 广东省国家税务总局班子成员
  • 重庆地方税务局发票查询
  • 纳税人未按照规定纳税
  • 陕西省国税务局大企业处长邓谷祥简历
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设