標籤:
protected int mScrollX; //該視圖內容相當於視圖起始座標的位移量 , X軸 方向
protected int mScrollY; //該視圖內容相當於視圖起始座標的位移量 , Y軸方向
位移量表示的就是相對位置,而不是針對起始點的絕對位置。
就像在路上的一個點,它距起始點的距離就是絕對長度;而距中途某個點的距離就是相對於中途這個點的位移量。
簡單點來比喻:
你要從北京去廣州,過了鄭州100公裡
鄭州就是基地址,100是位移!
public void scrollTo (int x, int y)
在當前視圖內容位移至(x , y)座標處,即顯示(可視)地區位於(x , y)座標
- public void scrollTo( int x, int y) {
- //位移位置發生了改變
- if (mScrollX != x || mScrollY != y) {
- int oldX = mScrollX;
- int oldY = mScrollY;
- mScrollX = x; //賦新值,儲存當前便宜量
- mScrollY = y;
- //回調onScrollChanged方法
- onScrollChanged(mScrollX, mScrollY, oldX, oldY);
- if (!awakenScrollBars()) {
- invalidate(); //一般都引起重繪
- }
- }
- }
public void scrollBy (int x, int y)
在當前視圖內容繼續位移(x , y)個單位,顯示(可視)地區也跟著位移(x,y)個單位
- // mScrollX 與 mScrollY 代表我們當前位移的位置 , 在當前位置繼續位移(x ,y)個單位
- public void scrollBy( int x, int y) {
- scrollTo(mScrollX + x, mScrollY + y);
- }
android中scrollTo和scrollBy的理解