Android自定义可移动悬浮按钮

| app:borderWidth | 边框大小,最好设置成0dp否则会有边框 |

| android:clickable | 一定要设置成true否则没有点击效果 |

  1. 在布局文件添加控件时可使用如下方式:

<android.support.design.widget.FloatingActionButton

/>

  1. 也可使用自定义的包名:

com.example.notepad2.DragFloatActionButton

因为接下来要实现自定义的悬浮按钮,可根据实际情况自定。这里建议使用第二种方法,使用第一种时可能会出现闪退情况

<com.example.notepad2.DragFloatActionButton

android:id=“@+id/fb”

android:layout_height=“wrap_content”

android:layout_width=“wrap_content”

app:borderWidth=“0dp”

app:backgroundTint=“#FFFFFF”

app:rippleColor=“#008577”

android:src=“@drawable/hao”

android:layout_alignParentRight=“true”

android:layout_centerVertical=“true”

/>

实现自定义悬浮按钮


创建一个_DragFloatActionButton_类继承_FloatingActionButton_

在类中覆写 onTouchEvent 函数,捕捉触摸事件,然后利用_setX()_,setY() 方法将其移动。

而吸附效果,则是利用_ObjectAnimator.ofFloat_ 实现动画。

//左吸附

ObjectAnimator oa=ObjectAnimator.ofFloat(this,“x”,getX(),0);

oa.setInterpolator(new DecelerateInterpolator());

oa.setDuration(500);

oa.start();

使用的构造方法为

public static ObjectAnimator ofFloat(Object target, String propertyName, float… values)

  • 第一个参数为添加动画的对象

  • 第二个参数为动画属性名称,这里我们使用alpha透明度动画

  • 第三个参数为要改变的值,是可变的,这里我们从1变为0再变为1,也就是从不透明变成透明,然后变回来。

以下是 DragFloatActionButton 类的实现代码:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值