Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> 仿照Launcher的Workspace實現左右滑動切換(上)

仿照Launcher的Workspace實現左右滑動切換(上)

編輯:Android開發實例

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

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

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

  新建一個ScrollLayout類,繼承自ViewGroup

  重寫onMeasureonLayout兩個方法:

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

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

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

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

運行結果:

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved