首页 > 代码库 > Android开发实战之底部Dialog弹出效果

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

当然,如果这些满足不了你的需求,你还可以自己定义。具体很简单,我这里就不多说,希望这篇博客对你有所帮助,如果有疑问欢迎下方留言。

Android开发实战之底部Dialog弹出效果