Android自定义可移动悬浮按钮

本文介绍了如何在Android中创建一个可移动的悬浮按钮_DragFloatActionButton_,通过覆写_onTouchEvent_方法并利用_setX()_和_setY()_进行移动。同时,通过:ObjectAnimator.ofFloat_实现了吸附效果。提供了完整的_DragFloatActionButton_类的实现代码,包括拖动事件处理和边缘吸附功能。
摘要由CSDN通过智能技术生成

实现自定义悬浮按钮


创建一个_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 类的实现代码:

public class DragFloatActionButton extends FloatingActionButton {

private int parentHeight;

private int parentWidth;

public DragFloatActionButton(Context context) {

super(context);

}

public DragFloatActionButton(Context context, AttributeSet attrs) {

super(context, attrs);

}

public DragFloatActionButton(Context context, AttributeSet attrs, int defStyleAttr) {

super(context, attrs, defStyleAttr);

}

private int lastX;

private int lastY;

private boolean isDrag;

&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值