首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android实现随意拖动View效果

项目过程中要实现能在页面中随意的拖动,刚开始实现是用悬浮球的形式进行实现,因为之前项目中用过,实现后发现用户每次安装后,都有权限的限制,甚至有些用户关闭悬浮球权限之后,不知道怎么在手机上打开悬浮球的权限...,这样的话用户体验很不好,所以自己重新自定义实现在页面中拖动,不需要请求权限。...自定义随意拖动View: package com.dragdemo; import android.annotation.SuppressLint; import android.content.Context...android.widget.ImageView; /** *随意拖动的view */ @SuppressLint("AppCompatCustomView") public class DragView...Toast.LENGTH_SHORT).show(); } } }); } } 项目Demo链接:底部公众号回复 “随意拖动

2.4K10

Touch事件实现View拖动

根据这些事件,可以做出View任意推动的效果。 实现原理:   首先获取view的位置以及父控件viewgroup的位置(上下左右)。...然后实现OnTouchListener监听,监听MotionEvent.ACTION_DOWN以及MotionEvent.ACTION_MOVE。在ACTION_DOWN中记录第一次按下时的X、Y值。...注意: onTouch和onClick事件冲突问题:   当同时实现了Touch和Click事件时,会发生冲突,如何避免?在我们的onTouchListener的监听方法会返回一个boolean。...我们希望在点击的时候触发点击事件,在拖动的时候实现移动效果的Touch事件。   那么,我们定义一个boolean key=false;在ACTION_DOWN里,使key=false。...拖动事件太容易触发。所以我们需要加点限制。在ACTION_MOVE中我们获得X、Y移动的距离。那么我们判断当期中一个的移动距离大于1的时,才执行key=true。冲突得到较为完善的解决。

1.5K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    viewgroup实现item拖动效果

    网络上关于GridView可拖动的例子已经不少了,包括带动画不带动画的都有一堆,但几乎都是通过继承Android原生控件GridView来扩展的,当然这种实现方式是很容易联想到的,也是最容易实现的。...今天跟大家分享另外一种方式,通过继承ViewGroup来实现,我们都知道,ViewGroup可以填充很多个View,因此,我觉得可以类似把GridView的每一个Item填充到我们自定义的ViewGroup...中,然后监听长按时间,实现拖动的效果,同时加上动画效果,个人感觉比网上其他实现方式更加简洁和美观,唯一的缺点就是:没有setAdapter的函数,添加的item,需要我们手动add到ViewGroup中...好了,废话不多说,我们先来看看效果图,第一张是静态效果,第二张是拖动时的效果图。 ? ?...我们先来看看DragGridView的代码部分: /**  * 另外一种方式实现动画可拖动item的GridView  *   * @author way  *   */ public class

    1.8K60

    android自定义view实现progressbar的效果

    一键清理是很多Launcher都会带有的功能,其效果也比较美观。实现方式也许有很多中,其中常见的是使用图片drawable来完成的,具体可以参考这篇文章:模仿实现360桌面水晶球式的一键清理特效。...本文另辟蹊径,使用自定义View来完成同样的效果,性能、效率更高。 ProgressWheel相信很多人并不陌生,我参考了其中一些代码。...android.os.Message;   import android.util.AttributeSet;   import android.util.Log;   import android.view.View...;   import android.util.Log;   import android.view.View;   import android.view.View.OnClickListener;  ...当然,在实际使用中的效果还是有所差异的,欢迎大家反馈、交流。

    75950

    gradeview可拖动效果实现

    下面先上这次实现功能的效果图:(注:这个效果图没有拖拽的时候移动动画,DEMO里面有,可以下载看看) 一、开发心里历程 刚开始接触这个的时候,不知道要如何实现,去网上翻了一大堆资料,懂了个大概,就是目前可以找到的都是拖拽的时候...OtherGridView) DragGrid 用于显示我的频道,带有长按拖拽效果 OtherGridView用于显示更多频道,不带推拽效果 注:由于屏幕大小不一定,外层使用ScrollView,所以2...(3) 抬起手后,清除掉拖动时候创建的view,让GridView中的数据显示。 6.  退出时候,将改变后的频道列表存入数据库。...;   /** 屏幕上的Y */ private int win_view_y;   /** 拖动的里x的距离 */ int dragOffsetX;   /** 拖动的里Y的距离 */...-- 震动权限 -->   android:name="android.permission.VIBRATE"/>   六、源码下载 源码DEMO下载地址如下:下载地址

    2.5K80

    js实现拖动组件移动效果

    2015-04-15 14:06:09 今天我来给大家介绍一种js特效,这种特效是当你用鼠标点击组件移动到其他地方后,这个组件就定在了那个地方,这种效果通常用来做视图化排版的。...column3 item4 这段代码是html代码,主要是大体的div布局,我们在这里的组件用的是div,通过下面的js代码来实现组件的移动...dragGhost.style.display = "block"; this.column.insertBefore(dragGhost,this); //记录每一列的左边距 在拖动过程中判断拖动对象所在的列会用到...= this//不能跟拖动元素自己比较 否则不能在本列向下移动 && top 拖动元素的上边距大的元素...;border-bottom:solid 1px #CCCCCC;background:#CCCCCC;color:white;cursor:move;} 这样就可以实现组件的移动了

    10.1K20

    Android 通过layer-list 实现View 的阴影效果

    1.介绍 主要介绍如何在res文件夹中的drawable中给View的布局添加上阴影效果。那么我们通过shape进行绘制的带阴影的布局有哪些优缺点和使用场景呢? 我们可以调整阴影的高度和颜色。...不用修改View代码,只需要添加背景。 修改灵活,支持圆角 2. 实现 示例:我们希望在View的顶部出现阴影 效果图如下: 有些小伙伴可能担心,绘制的阴影会不会有很明显的层次关系。...放心,绘制完毕的阴影显示效果并不会出现这种问题。我们在真机和虚拟机上实现效果都比较自然。 如果不放心,可以通过调整padding的值,同时添加多个item。让层次更多。...2.1 距离 我们创建完毕后布局View可能会显示在阴影区域,这需要我们主动将阴影区域的高度给空出来。 那么这个高度是多少呢?是我们每个item中的padding 的值的累加。

    76020

    Android实现仿iOS图标下载View动画效果

    UI那边直接让我参考 IOS的实现效果: [1240] UI效果 最终效果 [strip] 最终效果 完整的代码请看: https://github.com/xiaweizi/DownloadLoadingView...功能分析 面对这样的需要应该怎么实现呢?...顿时有个想法,要是两张图片重叠的部分能被抠出掉,也就是变成全透明,那岂不是非常容易就实现了。 圆环和弧既然是盖在了背景上,理当直接变成透明。那 Android 有对应处理的 API吗?答案是肯定的。 ...setXfermode() 用于设置图像的过度模式,其中 PorterDuff.Mode.CLEAR 为清除模式则可以实现上述的效果。...paint.setStyle(Paint.Style.STROKE); canvas.drawCircle(getWidth() / 2, getHeight() / 2, mRadius, paint); 圆环的颜色可以随意设置

    1.6K00

    Android自定义View——从零开始实现书籍翻页效果

    作者:Anlia 地址:http://www.jianshu.com/p/f78f52c3c560 声明:本文是Anlia原创,已获其授权发布,未经原作者允许请勿转载 前言 前言:在上篇Android...自定义View——从零开始实现书籍翻页效果(二)博客中,我们 补全了翻页效果以及增加了 取消翻页的动画,这期要教大家如何 向View填充内容 本篇只着重于思路和实现步骤,里面用到的一些知识原理不会非常细地拿来讲...目录 绘制当前页(A区域)的内容 绘制下一页(B区域)的内容 绘制当前页(A区域)背面(C区域)的内容 绘制当前页(A区域)的内容 相关博文链接 Android中的裁剪中Region.Op参数的用法...如果该项为true,将有助于文本在LCD屏幕上的显示效果。...AB区域的内容都是直接绘制在相应区域即可,不需要做太多的处理,而我们看到的C区域内容,即当前页的背面其实是这样来的,如图(图出自大神AigeStudio的博客Android翻页效果原理实现之模拟扭曲)

    2.4K20

    Android自定义View——从零开始实现雪花飘落效果

    本期教程我们就顺应季节主题,一起来实现 雪花飘落的效果吧。...本篇效果思路参考自国外大神的Android实现雪花飞舞效果,并在此基础上实现进一步的封装和功能扩展 本篇只着重于思路和实现步骤,里面用到的一些知识原理不会非常细地拿来讲,如果有不清楚的api或方法可以在网上搜下相应的资料...、速度和方向等等,其下落的过程会出现很多随机的因素,实现这种非规律的动画Animation类就不怎么适用了,因此我们这次要利用线程通信实现一个简单的定时器,达到周期性绘制View的效果。...在上述代码中View基本的框架我们已经搭好了,思路其实很简单,我们需要做仅仅是在每次重绘之前更新做下落运动的物体的位置即可 封装下落物体对象 相关博文链接 Android开发中无处不在的设计模式——Builder...模式:http://blog.csdn.net/sbsujjbcy/article/details/49208969 [Android] 获取View的宽度和高度:http://www.jianshu.com

    1.7K20

    Android 可拖动悬浮窗实现

    当时同事给的建议用 ViewDragHelper 来实现(原谅没玩过这个东西,网上看了下教程挺牛逼的,算了,还是选择用手势监听做吧),首先先给大伙看下最终的项目实现效果(模拟器上可能会卡顿,实际的运行效果还是很流畅的...项目最终效果 看完效果图,希望你能有点感兴趣,然后就开始上代码啦~,首先通过 WindowManager 添加一个指示的 indicatorView(就是侧边红色的条),用来提示用户通过这边进行拖动悬浮窗..."> <TextView android:id="@+id/touch_view" android:layout_width="200dp" android...indicatorView 的时候再慢慢的显示 contentView 就实现了拖动效果,所以 contentView 一开始 layout 的位置就是 (mScreenWidth, 0, mScreenWidth...通过如上代码可以发现,contentView 的 layout 属性变化都是通过动画来实现的,这边我采用属性动画,来不断改变滑动的距离来实现悬浮窗显示和隐藏的效果,也就是就是上面代码中的 rightInSmoothToLeft

    2.1K21

    Ant-design Modal实现可以拖动的效果

    最近项目组在开发的时候提出了一个需求,需要让 ant-design Modal实现能够拖动的功能,研究了一番,基于 and-design Modal自己封装了一个antd-draggable-modal...特性: 支持弹出窗居中打开 支持拖拽 title bar 实现拖拽 支持多层弹窗拖拽 实现原理 要实现 Modal 的拖拽,首先要弄清楚 Modal 的位置跟什么有关系,打开浏览器,通过 F12 调试窗口可以看到...因此接下来的思路就很简单了,通过监听鼠标事件来设置 ant-modal-content 元素的 transform 属性来实现 Modal 位置的调整。...AndModal 组件的 wrapClassName 属性,这样做的目的主要有两个: 便于通过 simpleClass 类来定位弹窗位置 当有多个弹窗时,可以通过 simpleClass 类来区分不同的弹窗,实现多层弹窗拖拽功能

    3.5K20

    【Android 事件分发】ItemTouchHelper 实现拖动排序

    Android 事件分发 系列文章目录 【Android 事件分发】事件分发源码分析 ( 驱动层通过中断传递事件 | WindowManagerService 向 View 层传递事件 ) 【Android...】ItemTouchHelper 实现侧滑删除 ( 设置滑动方向 | 启用滑动操作 | 滑动距离判定 | 滑动速度判定 | 设置动画时间 | 设置侧滑触发操作 ) 【Android 事件分发】ItemTouchHelper...实现拖动排序 ( 设置滑动方向 | 启启用长按拖动功能 | 拖动距离判定 | 设置拖动触发操作 ) ---- 文章目录 Android 事件分发 系列文章目录 一、ItemTouchHelper.Callback...配置侧滑删除 1、设置移动标志 ( 拖动/滑动 ) 2、启用长按拖动功能 3、拖动距离判定设置 4、设置拖动排序触发操作 5、RecyclerView.Adapter 适配器中的交换排序操作 三、完整代码实现...android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView

    2.3K10

    Android实用View:水波动画效果(多种方式)

    贝塞尔曲线实现 两种方式对比总结 1 前言 这次给大家带来的是一篇关于自定义View实现水波动画效果的文章,其实在去年项目中使用过类似的动画,当时就自定义View也实现了预期的效果,最近项目中又使用了相似的效果...实现方式: 正余弦函数实现 贝塞尔曲线实现 2 开篇 看到上边的两种实现方式是不是感觉都和数学公式有关呐,这对于毕业多年之后的我们来说如果当初数学基础不是很好现在估计也全部还给老师了吧,所以一提到相关的数学计算公式只能用一个表情表达了...,每次移动多少可以从外界传入,便于控制速度;K,波形偏移上下的距离,知道了以上各个参数的具体使用意义,下边就可以直接通过代码看下具体实现效果了,毕竟公式都有了,参数也发给你了,剩下的就是根据公式填写以下相应参数就...正余弦函数的波形使用是根据相位控制的,而贝塞尔曲线实现的波形效果是不断改变波的起始位置控制的,并且使用贝塞尔曲线的话需要先在屏幕外边绘制一个完整的波形,保证在平移的过程中可以看到图像不间断的移动来达到移动的波形效果...最终效果:录制模拟感觉有点卡顿,请真机测试哦.gif 看到这里你是你会感觉到这篇文章的内容其实很简单,只要中间的几个点注意一下就可以实现相应的效果了,建议朋友们动手敲一遍代码,加深一下印象,毕竟真是做出来和知道理论没有实践还是有很大区别的

    85420
    领券