目录
一、背景
手指拖动控件在屏幕范围内滑动,在边界处做滑动处理,手指离开则自动吸附到右侧
二、思路
【1】view支持滑动效果,重写OnTouchListener
【2】根据down/move分别处理,注意边界处理
【3】在up下判断是否靠右侧,不在则自动回弹
三、主要实现
private float downRawX;
private float downRawY;
private int maxRightX;
private int maxBottomY;
private View.OnTouchListener touchListener = new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (v == null || event == null) {
return false;
}
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
//手指按下
maxRightX = screenWidth - (v.getRight() - v.getLeft()); //最右边界