Android開發實戰之底部Dialog彈出效果


  在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    向前甩一定值后再回到原來位置

當然,如果這些滿足不了你的需求,你還可以自己定義。具體很簡單,我這里就不多說,希望這篇博客對你有所幫助,如果有疑問歡迎下方留言。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM