標籤:
在Android開發中,有很多情況下我們需要使用到對話方塊,遺憾的是,安卓內建的對話方塊樣式不能滿足我們實際的需要,所以往往需要我們自訂對話方塊,具體做法:寫一個對話方塊繼承自Dialog實現他的一個構造方法(取決於你的用法),在OnCreate()中進行處理。當然更多情況下,你是不需要自己去寫的,會抄代碼一樣也是一種本事,這裡我介紹一種底部彈出的對話方塊,希望對你的學習和工作有所協助,下面是:
下面介紹具體做法:
匯入依賴庫:
dependencies { compile ‘com.github.rey5137:material:1.2.2‘}
這是GitHup上一個基於Material Design的依賴庫,對於這個庫進行了最佳化。
下面是實現代碼:
bottomInterPasswordDialog = new BottomSheetDialog(HomeActivity.this);
bottomInterPasswordDialog
.contentView(viewInterPassword)
.heightParam(windowHight/3)
.inDuration(500)
.outDuration(500)
.inInterpolator(new BounceInterpolator())
.outInterpolator(new AnticipateInterpolator())
.cancelable(true)
.show();
一行代碼,輕鬆實現,contentView加入DIalog的View,inDuration進入螢幕時間,inInterpolator進入螢幕動畫,cancelable,是否點擊可以退出對話方塊,heightParam顯示DIalog的高度。其中 Interpolator
在安卓中有幾個定義:
AccelerateDecelerateInterpolator 在動畫開始與結束的地方速率改變比較慢,在中間的時候加速
AccelerateInterpolator 在動畫開始的地方速率改變比較慢,然後開始加速
AnticipateInterpolator 開始的時候向後然後向前甩
AnticipateOvershootInterpolator 開始的時候向後然後向前甩一定值後返回最後的值
BounceInterpolator 動畫結束的時候彈起
CycleInterpolator 動畫迴圈播放特定的次數,速率改變沿著正弦曲線
DecelerateInterpolator 在動畫開始的地方快然後慢
LinearInterpolator 以常量速率改變
OvershootInterpolator 向前甩一定值後再回到原來位置
當然,如果這些滿足不了你的需求,你還可以自己定義。具體很簡單,我這裡就不多說,希望這篇部落格對你有所協助,如果有疑問歡迎下方留言。
Android開發實戰之底部Dialog彈出效果