多達288種動態(tài)效果的側滑菜單開源庫,滿足您項目的各種需求
本篇文章已授權微信公眾號 guolin_blog (郭霖)獨家發(fā)布
3種位移動畫*2種縮放動畫*2種透明動畫*6種旋轉動畫,3種圖片背景效果=288種,另外包括縮放,透明度,3D旋轉,動態(tài)模糊都能設置范圍,所以可定制的效果就更多了.
1
用于測試的Demo上演示了很多效果,同時動態(tài)的顯示了當前效果要進行的代碼設置方法,同時還包含一些小提示,建議您先下個Demo先看看.DemoApk下載
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
布局文件非常簡單,包含兩個xml布局,上邊的是菜單布局,下邊的是內(nèi)容布局
如果是最簡單的使用那么這樣設置已經(jīng)足夠了,默認的是固定不動的滑動方式
如果要對滑動的參數(shù)和效果進行定制,那么可以看一下資源文件中的設置(都有注釋,理解起來不難)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
為了方便定制動畫效果,用一個4位數(shù)字來表示不同的動畫組合,個位代表的旋轉動畫效果序號,十位代表透明度動畫效果,千位代表縮放動畫效果,萬位代表位移動畫效果,各個位置的起始都是1,有幾種動畫效果上限就是多少.比如位移動畫有三種,則萬位的范圍就為1~3,其他依次類推.
注:因為背景,模糊效果會引入多余的組件,所以只在需要的時候添加進去,故不包含在動畫代碼中,設置方式下面再說.
代碼實現(xiàn)xml實現(xiàn)功能
setStyleCode(int type)sm_type`設置動畫效果代碼
setMenuOffset(int menuOffset)sm_menuoffset設置拉出菜單距離右邊界的距離
setDragWipeOffset(int dragWipeOffset)sm_dragoffset設置觸發(fā)滑動的范圍,為0則是全屏
setStartScale(float minScale)sm_startscale設置起始縮放
setStartAlpha(float startAlpha)sm_startalpha設置起始透明度
setStart3DAngle(int start3DAngle)sm_start3dangle設置起始3D旋轉角度
setFullColor(Activity activity, int headColor)無設置全局顏色
setBackImage(Activity activity, int backBitmap, int headColor)無設置全局圖片背景并沉浸
setBlur(Activity activity, int backBitmap, int headColor, float blur)無設置全局模糊背景并指定模糊程度
setChangedBlur(Activity activity, int backBitmap, int headColor)無設置全局動態(tài)模糊(范圍默認0~25f)
setReverseChangedBlur(Activity activity, int backBitmap, int headColor)無設置反向動態(tài)模糊背景(范圍默認0~25f)
setChangedBlur(Activity activity, int backBitmap, int headColor, float startBlur, float endBlur)無設置指定范圍的動態(tài)模糊
setOnMenuShowingListener(onSwipeProgressListener listener)無設置滑動監(jiān)聽,回調(diào)獲取菜單隱藏到顯示的進度,范圍(0~1.0f)
changeAllColor(int color)無改變?nèi)诸伾?需要先設置全局顏色)
isMenuShowing()無當前菜單是否顯示
showMenu()無顯示菜單
hideMenu()無隱藏菜單
1.默認是不設置全局背景或者顏色的,所以如果需要全局顏色沉浸和背景沉浸請做相關設置.兩種沉浸都兼容到4.4
2.全局顏色支持動態(tài)更換,全局圖片背景不支持,當時想的是應該沒有這種需求,當然如果有的話可以跟我反饋我會添加.
3.旋轉動畫其實就一個3D旋轉效果比較好,其他的都是瞎添的,如果要用的話建議和透明度動畫一起使用,可防止卡頓(單獨用中心旋轉卡頓明顯,畢竟繪圖的代價擺在那)
另外用RecyclerView來顯示提示的另一個目的是演示滑動沖突的處理,默認的是菜單和內(nèi)容都是可以處理橫向縱向的滑動操作的,只有當滑動在靠近菜單內(nèi)容交集點的時候才會觸發(fā)滑動.當然也可以設置全屏滑動和設置觸發(fā)的范圍,具體方法查看上面表格內(nèi)的方法,這里就不重復了.
Android Studio的話跟其他庫一樣,在你們App的build.gradle內(nèi)的dependencies下添加
compile'com.brioal:SwipeMenu:1.0'
1
Demo代碼已上傳Github,地址:SwipeMenuDemo
另外說一點其他的,本人開學大四,喜歡Android開發(fā),目前還沒有確定的工作,如果您有推薦可以進入我的另外一個博客查看簡歷:Brioal`s Blog
如果覺得我寫的東西多多少少有一點可取之處,可以去[Github](https://github.com/Brioal/SwipeMenuDemo)上點個贊,多的話也能寫到簡歷裝一下是吧~~麻煩了
大部分大學應該是不開Android開發(fā)的,在這里與所有自學Android的同學們共勉~自學不容易啊!!
另外我建了個qq群,方便交流,歡迎各種大神,新手老手加入,群號碼:375276053