仿今日头条的graidview拖动

简介: <p style="line-height:26px; text-indent:nullem; text-align:left"><span style="color:rgb(0,0,0)"><span style="background-color:rgb(255,255,255)"><span style="font-family:Arial"><span style="font-si

下面先上这次实现功能的效果图:(注:这个效果图没有拖拽的时候移动动画,DEMO里面有,可以下载看看)



三、开发思路

1.  获取数据库中频道的列表,如果为空,赋予默认列表,并存入数据库,之后通过对应的适配器赋给对应的GridView


2.  2个GridView--(1.DragGrid   2. OtherGridView)

DragGrid 用于显示我的频道,带有长按拖拽效果

OtherGridView用于显示更多频道,不带推拽效果

注:由于屏幕大小不一定,外层使用ScrollView,所以2者都要重写计算高度


3.  点击2个GridView的时候,根据点击的Item对应的position,获取position对应的view,进行创建一层移动的动画层

起始位置:点击的positiongetLocationInWindow()获取。终点位置:另一个GridView的最后个ITEM 的position + 1的位置。

并赋予移动动画,等动画结束后对2者对应的频道列表进行数据的remove和add操作。


4.  设置点击和拖动的限制条件,如  推荐  这个ITEM是不允许用户操作的。


5.  拖动的DragGrid的操作:

(1)长按获取长按的ITEM的position  -- dragPosition 以及对应的view ,手指触摸屏幕的时候,调用onInterceptTouchEvent来获取MotionEvent.ACTION_DOWN事件,获取对应的数据。由于这里是继承了GridView,所以长按时间可以通过setOnItemLongClickListener监听来执行,或则你也可以通过计算点击时间来监听是否长按。

(2)通过onTouchEvent(MotionEvent ev)来监听手指的移动和抬起动作。当它移动到 其它的item下面,并且下方的item对应的position  不等于 dragPosition,进行数据交换,并且2者之间的所有item进行移动动画,动画结束后,数据更替刷新界面。

(3) 抬起手后,清除掉拖动时候创建的view,让GridView中的数据显示。


6.  退出时候,将改变后的频道列表存入数据库。



四、流程图

下面是大体的流程图:

注:本DEMO中,加入了长按震动,所以在权限里面记得加上“

[java] view plaincopy

  • <!-- 在SDCard中创建与删除文件权限 -->  
  • <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />  
  • <!-- 往SDCard写入数据权限 -->  
  • <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />  
  • <!-- 震动权限 -->  
  • <uses-permission android:name="android.permission.VIBRATE"/>  

六、源码下载源码DEMO下载地址如下android 高仿 频道管理----网易、今日头条、腾讯视频 (可以拖动的GridView).rar.rar(1.71 MB, 下载次数: 163)

目录
相关文章
|
JavaScript
直播视频网站源码,实现移动端的按钮拖动
直播视频网站源码,实现移动端的按钮拖动
781 0
|
JavaScript 前端开发
仿抖音短视频系统源码,点击实现波纹效果
仿抖音短视频系统源码,点击实现波纹效果
1863 0
|
算法 Android开发
仿网易云音乐播放界面
前言 网易云音乐是一款非常优秀的音乐播放器,尤其是播放界面,使用唱盘机风格,显得格外古典优雅。笔者出于学习与挑战的想法,思考播放界面背后的实现原理,并写了一个小程序。
2416 0
|
存储 前端开发
仿抖音的音乐旋转
这次是实现一个仿抖音的音乐旋转自定义View,先看一下效果 效果图 实现这个效果主要是采用的拼凑的方法,即先实现音符动画再实现图片旋转动画然后将两个效果合并到一起。
1496 0
|
Android开发
仿抖音底部导航(二)
继续实现仿抖音底部导航 今天要实现效果如下图 实现效果 首先在原基础的布局中加入一个ImageView 这里附上刷新的图片素材 image 然后在原代码中进行修改以实现导航的动画及刷新功能 1.
1812 0
|
XML Android开发 数据格式
仿抖音底部导航效果(一)
最终效果预览 最终效果 这次实现的是第一步效果 本次效果 原理解析:通过对控件添加动画来实现仿抖音底部导航的效果 一.首先编写布局文件(这里是用TextView作为底部的指示横线) 二.
2070 0
类似微信图片浏览,常见应用场景如微信朋友圈照片九宫格和微信聊天图片预览
本项目受Google官方demo Zooming a View 启发,实现了点击小图放大至全屏预览,退出全屏恢复至原来位置这两个过程的动画过渡。 常见应用场景如微信朋友圈照片九宫格和微信聊天图片预览,某些手机系统相册等viewpager图片查看 缩放 拖拽下拉缩小退出(效果同微信图片浏览) 特点1.支持自定义图片加载框架。
2255 0
|
JavaScript 前端开发
第65天:仿网易轮播图
仿网易轮播图 1、HTML部分 1 DOCTYPE html> 2 3 4 5 仿网易轮播图 6 7 8 9 10 11 12 13 14 ...
1254 0