仿Launcher的GridView拖动是一个长按GridView的item,然后将其拖拽其他item上面,使得GridView的item发生交换,比较典型的就是我们的Launcher,网上有很多关于GridView的拖动的Demo,但是大部分都是相同的,而且存在一些Bug,而且大部分都是点击GridView的item然后进行拖动,或者item之间不进行实时交换,今天给大家更加详细的介绍GridView拖拽,并且将Demo做的更完美。
实现思路:
1、根据手指按下的X,Y坐标来获取我们在GridView上面点击的item
2、手指按下的时候使用Handler和Runnable来实现一个定时器,假如定时时间为1000毫秒,在1000毫秒内,如果手指抬起了移除定时器,没有抬起并且手指点击在GridView的item所在的区域,则表示我们长按了GridView的item
3、如果我们长按了item则隐藏item,然后使用WindowManager来添加一个item的镜像在屏幕用来代替刚刚隐藏的item
4、当我们手指在屏幕移动的时候,更新item镜像的位置,然后在根据我们移动的X,Y的坐标来获取移动到GridView的哪一个位置
5、到GridView的item过多的时候,可能一屏幕显示不完,我们手指拖动item镜像到屏幕下方,要触发GridView想上滚动,同理,当我们手指拖动item镜像到屏幕上面,触发GridView向下滚动
6、GridView交换数据,刷新界面,移除item的镜像
本例子来自于CSND xiaanming的博客,详细的源码分析已经帮大家离线成pdf文档了。
效果图:
温室大棚控制系统纯布局源码
仿IOS6和IOS7开关按钮源码
仿安卓微信、云播雷达扫描动画效果
无限级节点展开树
可以代替加载图的TextView
仿universal图片异步加载
十几种安卓特效打包源码
仿Launcher的GridView拖动
NFC读卡信息小例子源码
仿网易360新闻等新闻阅读器频道管理
20多种TextView文字效果例子
滑动解锁源码
自由拖动图标源码
可拖动导航栏功能
Android打造万能的ListView和GridView适配器
通过RecyclerViews实现Google Photo中的多选效果
一个支持header和footer的gridview
android实现自定义RelativeLayout可拖动、缩放、旋转TextView
热门源码