天天看點

Android 自定義View修煉-打造完美的自定義側滑菜單/側滑View控件(轉)

一、概述

  在App中,經常會出現側滑菜單,側滑滑出View等效果,雖然說Android有很多第三方開源庫,但是實際上

咱們可以自己也寫一個自定義的側滑View控件,其實不難,主要涉及到以下幾個要點:

1.對Android中Window類中的DecorView有所了解

2.對Scroller類實作平滑移動效果

3.自定義ViewGroup的實作

首先來看看效果圖吧:

Android 自定義View修煉-打造完美的自定義側滑菜單/側滑View控件(轉)
Android 自定義View修煉-打造完美的自定義側滑菜單/側滑View控件(轉)

  下面現在就來說說這裡咱們實作側滑View的基本思路吧,這裡我采用的是自定義一個繼承于RelativeLayout的控件叫做XCSlideView類吧。

首先從布局檔案中inflater出來一個menuView,然後通過addView的方法,将該側滑View添加到自定義的控件View中

怎麼讓XCSlideView 這個側滑View 隐藏到螢幕之外呢?很簡單通過ScrollTo方法,移動一個螢幕寬度的距離即可,這裡以

左側滑出為例吧,隻需要這樣 XCSlideView.this.scrollTo(mScreenWidth, 0);mScreenWidth是螢幕寬度。下面還要處理的就是底下的

半透明黑色的蒙層效果,這個其實就是一個View,然後設定半透明效果。這個當然簡單了,關鍵是咱們讓他顯示在咱們的自定義側滑View的下面呢,

這裡咱們先給出DecorView的簡單分析,友善下面介紹添加半透明View蒙層下:

Android 自定義View修煉-打造完美的自定義側滑菜單/側滑View控件(轉)

下面是對上面這張圖的解釋:

1、DecorView為整個Window界面的最頂層View。

2、DecorView隻有一個子元素為LinearLayout。代表整個Window界面,包含通知欄,标題欄,内容顯示欄三塊區域。

3、LinearLayout裡有兩個FrameLayout子元素。

  (20)為标題欄顯示界面。隻有一個TextView顯示應用的名稱。也可以自定義标題欄,載入後的自定義标題欄View将加入FrameLayout中。

  (21)為内容欄顯示界面。就是setContentView()方法載入的布局界面,加入其中。

有了上面的DecorVIew知識背景,現在就來說說 怎麼添加蒙層View和将自定義側滑View添加到Activity的DecorView中,首先把蒙層View添加到

(31)customView中去,然後将自定義側滑View添加到 (21)FrameLayout中去,至于為什麼要這樣,是因為考慮到自定義側滑View不一定是寬度為

螢幕寬度,是以才這麼做,而且也方面處理有無标題欄,有無采用沉浸式狀态欄設計等情況。

二、自定義側滑View的實作

根據上面的概述,大家應該知道大概的思路了,下面我就給出自定義側滑View類的核心代碼:

1、自定義側滑View用到的變量:

Android 自定義View修煉-打造完美的自定義側滑菜單/側滑View控件(轉)
Android 自定義View修煉-打造完美的自定義側滑菜單/側滑View控件(轉)

2、初始化建立自定義側滑View:

Android 自定義View修煉-打造完美的自定義側滑菜單/側滑View控件(轉)
Android 自定義View修煉-打造完美的自定義側滑菜單/側滑View控件(轉)

3、建立半透明蒙層View,并添加到contentView中去

Android 自定義View修煉-打造完美的自定義側滑菜單/側滑View控件(轉)
Android 自定義View修煉-打造完美的自定義側滑菜單/側滑View控件(轉)

4、設定側滑菜單View,并添加到DectorView->LinearLayout->内容顯示區域View(FrameLayout)中

Android 自定義View修煉-打造完美的自定義側滑菜單/側滑View控件(轉)
Android 自定義View修煉-打造完美的自定義側滑菜單/側滑View控件(轉)

5、處理自定義側滑View的側滑滑動和隐藏效果:

Android 自定義View修煉-打造完美的自定義側滑菜單/側滑View控件(轉)
Android 自定義View修煉-打造完美的自定義側滑菜單/側滑View控件(轉)

三、如何使用該自定義側滑View控件

使用起來,比較簡單,通過create方法建立一個側滑VIew,然後通過setMenuView方法設定一個側滑View進去,有需要設定

寬度的話, 通過setMenuWidth方法來設定即可,最後用show()方法滑出來就可以啦,使用起來是不是很友善?

Android 自定義View修煉-打造完美的自定義側滑菜單/側滑View控件(轉)
Android 自定義View修煉-打造完美的自定義側滑菜單/側滑View控件(轉)

四、源碼下載下傳:

http://www.cnblogs.com/JczmDeveloper/p/4821148.html

繼續閱讀