本篇文章屬于android仿薄荷卷尺系列文章
1. 關鍵代碼
- curScrollX 當前內容的偏移距離了
- scrollDx 根據(jù)手勢的滑動距離队贱,計算出的本次內容要偏移的距離
- 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. 圖解
-
顯示右側內容
image -
顯示左側內容
image
3. 總結
- 畫圖幫助分析
- 計算事帶上方向(正負號)