网上很多关于ViewDragHelper的使用方法,写的都很不错,近期有个图片合成的小需求,需要图片可添加(保留上一次的位置,初始化位置设定),可拖拽,可点击,自然就想到了这个东西。当然它的作用很强大,远不止这点功能,再此做个总结。
###ViewDragHelper的常用方法实现
使用时一般是在ViewGroup中使用,我的需求是自定义了ViewGroup,继承FrameLayout。
####初始化ViewDragHelper
mViewDragHelper = ViewDragHelper.create(this, 1f, new ViewDragCallBack());
####实现ViewDragHelper.Callback的常用方法
#####1.tryCaptureView
其中tryCaptureView是抽象需要强制实现的。在这里我们可以控制我们需要拖动的View,以及控制想要拖动的View。
@Override
public boolean tryCaptureView(View child, int pointerId) {
if (isAllViewCanDrag) {
return true;
} else {
return dragView == child;
}
}
#####2.clampViewPositionHorizontal,clampViewPositionVertical
这两个方法可以控制view上下左右是否可以超出边界,可以实现只在当前ViewGroup的区域内拖动。
@Override
public int clampViewPositionHorizon