編輯:關於Android編程
一直對於這幾個概念沒有仔細區分過.
現在找個時間來分析一下這個幾個東西
scrollTo,scrollBy和Scroller 具體用法:
首先 scrollTo(x,y) 的參數是絕對坐標移動到x,y的位置區
btnScroll = (Button) findViewById(R.id.button1);
llMain = (LinearLayout) findViewById(R.id.ll_main);
// zslMain = (ZScrollLayout) findViewById(R.id.ll_main);
btnScroll.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// llMain.scrollBy(-50, 0);
llMain.scrollTo(-50, 0);
// zslMain.startSrcoll();
}
});
然後 scrollBy(x,y)是相對坐標,每一次scroll都會偏移相應的偏移量
btnScroll = (Button) findViewById(R.id.button1);
llMain = (LinearLayout) findViewById(R.id.ll_main);
// zslMain = (ZScrollLayout) findViewById(R.id.ll_main);
btnScroll.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
llMain.scrollBy(-50, 0);
// llMain.scrollTo(-50, 0);
// zslMain.startSrcoll();
}
});
ps: 特別要指出的一點是,scrollTo和scrollBy 都是由父控件調用後,父控件移動子控件的,這個可能表達的有點繞了,具體可以看代碼
最後 Scroller 是滾動器,與scroolTo和scrollBy有較大的差別。Scroller的是專門用來計算漸變坐標的一個類,它並不負責UI的更新而只是純粹的數據計算。
Scroller 的UI更新是通過調用上面的兩個函數來實現的。
這個是自定義的父控件,需要 重寫computeScroll函數,這個函數是在繪制動作是每次都會調用的,android也正是通過這種方式的漸變移動效果
public class ZScrollLayout extends LinearLayout {
private Scroller mScroller;
public ZScrollLayout(Context context, AttributeSet attrs) {
super(context, attrs);
mScroller = new Scroller(context);
}
public void startSrcoll() {
mScroller.startScroll(10, 0, -300, 0, 5000);
invalidate();
}
@Override
public void computeScroll() {
if (mScroller.computeScrollOffset()) {
// 產生了動畫效果,根據當前值 每次滾動一點
scrollTo(mScroller.getCurrX(), mScroller.getCurrY());
// 此時同樣也需要刷新View ,否則效果可能有誤差
postInvalidate();
}
}
}
btnScroll = (Button) findViewById(R.id.button1);
// llMain = (LinearLayout) findViewById(R.id.ll_main);
zslMain = (ZScrollLayout) findViewById(R.id.ll_main);
btnScroll.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
llMain.scrollBy(-50, 0);
llMain.scrollTo(-50, 0);
// zslMain.startSrcoll();
}
});
完整demo地址:http://download.csdn.net/detail/zmobs/6704237
android中圖片翻頁效果簡單的實現方法
復制代碼 代碼如下:public class PageWidget extends View { private Bitmap for
Android線程篇
在Android中,UI主線程並非線程安全的,所有UI相關的操作均需在UI主線程中完成。在默認情況下,開發者創建的Service、Activity、Broadcast均運
Android--線程詳解
什麼是線程?線程或者線程執行本質上就是一串命令(也是程序代碼),然後我們把它發送給操作系統執行。一般來說,我們的CPU在任何時候一個核只能處理一個線程。多核處理器(目前大
Android中ListView下拉刷新的實現方法實例分析
本文實例講述了Android中ListView下拉刷新的實現方法。分享給大家供大家參考,具體如下:ListView中的下拉刷新是非常常見的,也是經常使用的,看到有很多同學