By:Yao.GUET 轉載請注明出處。

HTTP://blog.csdn.net/Yao_GUET

 

對於Launcher的桌面滑動大家應該都比較熟悉了,最好的體驗應該是可以隨著手指的滑動而顯示不同位置的桌面,

 

比一般用ViewFlinger+動畫所實現的手勢切換頁面感覺良好多了~~~~

 

分析了一下Launcher中的WorkSpace,裡面有太多的代碼我們用不上了(拖拽,長按,,,),把裡面的冗餘碼去掉得到實現滑動切換畫面所必需的。。。。




新建一個ScrollLayout類,繼承自ViewGroup。

 

重寫onMeasure和onLayout兩個方法:

 

其中onMeasure方法中,得到ScrollLayout的佈局方式(一般使用FILL_PARENT),然後再枚舉其中所有的子view,設置它們的佈局(FILL_PARENT),這樣在ScrollLayout之中的每一個子view即為充滿螢幕可以滑動顯示的其中一頁。

 

在onLayout方法中,橫向畫出每一個子view,這樣所得到的view的高與螢幕高一致,寬度為getChildCount()-1個螢幕寬度的view。




添加一個Scroller來平滑過渡各個頁面之間的切換,




HTTP://blog.csdn.net/yao_guet/article/details/6393962重寫onInterceptTouchEvent和onTouchEvent來回應手指按下劃動時所需要捕獲的消息,例如劃動的速度,劃動的距離等。再配合使用scrollBy (int x, int y)方法得到慢速滑動小距離的時候,所需要顯示的內容。最後當手指起來時,根據劃動的速度與跨度來判斷是向左滑動一頁還是向右滑動一頁,確保每次使用者操作結束之後顯示的都是整體的一個子view.



源碼下載:HTTP://download.csdn.net/source/3246818
arrow
arrow
    全站熱搜

    戮克 發表在 痞客邦 留言(0) 人氣()