1,當一整個介面放不下我們的元件的時候,就要用到scrollview了。
應用挺簡單的,在xml檔案裡設定乙個就ok了,注意一下,該元件裡只能放置乙個子布局,但是子布局就沒有這個限制了。
2,因為有滑動回彈的效果,所以投了乙個別人的demo,這裡放在這裡,但願被偷的人看不到。。。。
public class reboundscrollview extends scrollview
public reboundscrollview(context context, attributeset attrs)
public reboundscrollview(context context, attributeset attrs, int defstyleattr)
/** after inflating view, we can get the width and height of view */
@override
protected void onfinishinflate()
@override
protected void onlayout(boolean changed, int l, int t, int r, int b)
public reboundscrollview setonreboundendlistener(onreboundendlistener onreboundendlistener)
public reboundscrollview setenabletoprebound(boolean enabletoprebound)
public reboundscrollview setenablebottomrebound(boolean menablebottomrebound)
private int lasty;
private boolean rebound = false;
private int rebounddirection = 0; //<0 表示下部回彈 >0 表示上部回彈 0表示不回彈
@override
public boolean dispatchtouchevent(motionevent ev)
switch (ev.getaction())
//處於頂部或者底部
int deltay = (int) (ev.gety() - lasty);
//deltay > 0 下拉 deltay < 0 上拉
//disable top or bottom rebound
if ((!menabletoprebound && deltay > 0) || (!menablebottomrebound && deltay < 0))
int offset = (int) (deltay * 0.48);
mcontentview.layout(mrect.left, mrect.top + offset, mrect.right, mrect.bottom + offset);
rebound = true;
break;
case motionevent.action_up:
if (!rebound) break;
rebounddirection = mcontentview.gettop() - mrect.top;
translateanimation animation = new translateanimation(0, 0, mcontentview.gettop(), mrect.top);
animation.setduration(300);
animation.setanimationlistener(new animation.animationlistener()
@override
public void onanimationend(animation animation)
if (rebounddirection < 0)
rebounddirection = 0;}}
@override
public void onanimationrepeat(animation animation)
});mcontentview.startanimation(animation);
mcontentview.layout(mrect.left, mrect.top, mrect.right, mrect.bottom);
rebound = false;
break;
}return super.dispatchtouchevent(ev);
}@override
public void setfillviewport(boolean fillviewport)
/*** 判斷當前scrollview是否處於頂部
*/private boolean isscrolltotop()
/*** 判斷當前scrollview是否已滑到底部
*/private boolean isscrolltobottom()
/*** listener for top and bottom rebound
* do your implement in the following methods
*/public inte***ce onreboundendlistener
}
應用的時候,把xml檔案裡的換成該類的包名加類名就ok了。
3.當你設定scrollview後會發現介面會先顯示最上面的內容。怎麼讓他從下面開始顯示呢
設定一下。利用內建方法scrollto
rsv.post(new runnable()
//因為要求介面載入時就是在底部,所以需要新建乙個執行緒來保證
});
星空數獨開發總結(一) 閃屏製作
android小白,在公司經過乙個月的實習,大體完成了一款星空數獨遊戲的開發,現將學習內容,歸納,總結,備忘 閃屏製作 1,新建splash.activity檔案 在androidmainfest.xml檔案中將以下 從main.activity剪下到splash.activity下 該段 作用 設...
星空數獨開發總結(十) 標記功能的實現
這些邏輯上的東西寫起來會比較麻煩一點 1,按鍵監聽 mark.setonclicklistener new view.onclicklistener else 2,用乙個陣列儲存標記內容 private int smallcell new int 81 9 第乙個用來儲存空格位置,第二個用來儲存輸入...
星空數獨開發總結(八) 進度條和倒計時
採用條形進度條,上方有10分鐘倒計時 系統預設進度條形狀圓形,在xml檔案中設定 android visibility visible 設定可見 style android style widget.progressbar.horizontal 條形倒計時的話推薦我在github上偷的utils,賊...