本篇文章属于android仿薄荷卷尺系列文章
1. 关键代码
- curScrollX 当前内容的偏移距离了
- scrollDx 根据手势的滑动距离,计算出的本次内容要偏移的距离
- leftMaxShow,rightMaxShow 分别为内容向左侧最多显示的内容距离和右侧最多显示的内容距离。
- leftRemain 当前向左侧还可以显示的剩余内容距离
- righRemain 当前向右侧还可以显示的剩余内容距离。
case MotionEvent.ACTION_MOVE:
......
float x = event.getX(pointIndex);
float dx = x - mLastX;
float scrollDx = -dx;
int curScrollX = getScrollX();
int leftRemain = leftMaxShow - curScrollX;
int righRemain = rightMaxShow - curScrollX;
if (scrollDx < leftRemain) {//向右滑动
scrollDx = leftRemain;
} else if (scrollDx > righRemain) {//向左滑动
scrollDx = righRemain;
}
scrollBy((int) scrollDx, 0);
......
2. 图解
-
显示右侧内容
-
显示左侧内容
3. 总结
- 画图帮助分析
- 计算事带上方向(正负号)