专栏首页Android机器圈自己做悬浮拖拽按钮依赖

自己做悬浮拖拽按钮依赖

PS:悬浮拖拽按钮的使用也是非常广的,就比如说上一个网站的时候就会弹出一个对话框,对话框可以随意拖动,那么安卓手机上可以实现吗,答案是可以的,这就用到了自定义view的按压点击等事件,本文的例子比较简单是继承FloatingActionButton,这个控件本身就做的很好了,点击效果,按压出的投影等都是可以调节的,所以继承他就可以省去写很多细节代码。网上也是有很多博友写了有关的文章,讲了原理也是很清楚的,写的都很好,也有很多写的代码基本上差不多,再怎么变MotionEvent方法的DOWN、MOVE、UP等是不会变的,里面无非是写了一些不兼容的问题,当时我写这个的时候也是有一些问题,比如说,锤子手机就不能用,或者华为手机5.0以上的不行等,在网上看了一些博友的文章借鉴,在这里首先感谢博客这个平台可以分享技术,其次就是博友的技术思路分享。煽情的话就到这了,这里就稍微说一下制作思路:

思路:

  • 继承FloatingActionButton
  • onTouchEvent()的重写
  • MotionEvent.ACTION_DOWN:
  • MotionEvent.ACTION_MOVE:
  • MotionEvent.ACTION_UP:

当手指按下的时候记住悬浮按钮屏幕所在位置作为起始位置,当滑动的时候再次获取所在位置并且判断所滑动的不能超过屏幕(不判断有时会导致一半按钮在外,一半在内的现象),当超过时,就让它等于屏幕的最小值或者最大值,至于UP就是动画了,当手指抬起后判断在屏幕的哪边,左边就把x=0;右边 x=屏幕最大值。下面有我整理完后,做了一个AS依赖库,直接就可以用,想搞明白这一块的知识可以去查查别的资料,也可以直接拿着用。

效果:

1:添加依赖

自己做了一个依赖:根目录build.gradle中

    allprojects {
        repositories {
            ...
            maven { url 'https://jitpack.io' }
        }
    }

在build.gradle中添加

    dependencies {
            implementation 'com.github.hahage001:LZTmusketeer:v1.0.0'
    }

2:使用

添加依赖的地址和本文的有所不同。(mus.cn.suspendbutton.DragFloatActionButton)

    <mus.cn.suspendbutton.DragFloatActionButton
        android:layout_width="200px"
        android:layout_height="200px"
        android:src="@mipmap/ic_launcher"
        app:backgroundTint="#253aac"
        app:rippleColor="#33728dff"
        app:elevation="6dp"
        app:pressedTranslationZ="12dp"
        android:clickable="true"
        android:focusable="true"
    />

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Android之MaterialDesign应用技术

      PS:纵观现在大大小小软件的界面都变的比较漂亮,还有一些系统了,比如小米的MIUI,华为的EMUI等,虽然底层都是安卓,但他们的界面多多少少都会不同,谷歌对...

    cMusketeer
  • Android之Bmob移动后端云服务器

    源码下载:http://download.csdn.net/download/jjhahage/10034519 PS:一般情况下,我们在写android程序的...

    cMusketeer
  • GridView结合tablayout实现展开收缩功能

    PS:最近有一些粉丝给我留言说怎么实现那种 上面多个item,然后可以展开收缩,当点击了item后下方会出现一些数据,而且item对应多个型号,我当时看到这也...

    cMusketeer
  • 《Monkey Android》第12课ImageView

    这一节课,我们主要学习了ImageView,不过它的功能有限,只能显示静态图片。在实际需求中,我们可能会用到更高级的用法,如显示圆形头像,或者动态的gif,又或...

    GitOPEN
  • Android手机平板两不误,使用Fragment实现兼容手机和平板的程序

    记得我之前参与开发过一个项目,要求程序可以支持好几种终端设备,其中就包括Android手机和Android Pad。然后为了节省人力,公司无节操地让Androi...

    用户1158055
  • ViewPager快速实现引导页

    在很多APP第一次启动时都会出现引导页,在一些APP里面还会包括一些左右滑动翻页和页面轮播切换的情况。在之前也已经学习了AdapterViewFlipp...

    分享达人秀
  • Android ViewPager + Fragment实现滑动页面效果

    以上所述是小编给大家介绍的Android ViewPager + Fragment实现滑动页面效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时...

    砸漏
  • 详解Android使用CoordinatorLayout+AppBarLayout实现拉伸顶部图片功能

    四、重点在于设置AppBarLayout的Behavior这里自定义AppBarLayoutOverScrollViewBehavior,下面贴出代码

    砸漏
  • Android TextView 属性大全

    Android 中我们知道有一个使用频率非常高的控件,它就是 TextView,但是它的属性特别多,今天我们就来探究下,它都有哪些属性。

    Vance大飞
  • TabLayout使用指南

    TabLayout是开发中经常使用到的控件,经常与ViewPager一起配合使用,一组tab,可以点击、可以滚动。这不,我们的app中也是用到了这个控件,之前对...

    用户1108631

扫码关注云+社区

领取腾讯云代金券