Android自定义可拖拽的悬浮按钮自定义可拖拽的悬浮按钮DragFloatingActionButton
主要介绍了Android自定义可拖拽的悬浮按钮DragFloatingActionButton,需要的朋友可以参考下
悬浮按钮FloatingActionButton是Android 5.0系统添加的新控件,FloatingActionButton是继承至ImageView,所以FloatingActionButton拥有ImageView的所有属性。本文讲解的是一个实
现了可拖拽的悬浮按钮,并为此添加了类似于qq的吸附边框的功能。在此之前,先了解下其简单的使用方式吧:
首先你得添加其依赖
compile 'com.android.support:design:25.3.1'
然后在布局文件中使用。
<android.support.design.widget.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right|bottom"
android:src="@drawable/ic_launcher"
/>
如图:
FloatingActionButton正常显示的情况下有个填充的颜色,有个阴影;点击的时候会有一个rippleColor,并且阴影的范围可以增大。其中:
1、填充的颜色默认使用就是style当中的colorAccent。
2、rippleColor默认取的是Theme当中的colorControlHighlight。
3、elevation和pressedTranslationZ,前者用户设置正常显示的阴影大小;后者是点击时显示的阴影大小。
好了,现在介绍本文的重点:可拖拽的,有吸附功能的悬浮按钮
先上代码。
import android.animation.ObjectAnimator;
import android.content.Context;
import android.support.design.widget.FloatingActionButton;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.animation.DecelerateInterpolator;
public class DragFloatActionButton extends FloatingActionButton {
private int screenWidth;
private int screenHeight;
private int screenWidthHalf;
private int statusHeight;
private int virtualHeight;
public DragFloatActionButton(Context context) {
super(context);
init();
}
public DragFloatActionButton(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public DragFloatActionButton(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
private void init() {
screenWidth = ScreenUtils.getScreenWidth(getContext());
screenWidthHalf = screenWidth / 2;
screenHeight = ScreenUtils.getScreenHeight(getContext());
statusHeight = ScreenUtils.getStatusHeight(getContext());
virtualHeight=ScreenUtils.getVirtualBarHeigh(getContext());
}
private int lastX;
private int lastY;
评论0