zoukankan      html  css  js  c++  java
  • 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    向前甩一定值后再回到原来位置

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

  • 相关阅读:
    pat甲级 1155 Heap Paths (30 分)
    pat甲级 1152 Google Recruitment (20 分)
    蓝桥杯 基础练习 特殊回文数
    蓝桥杯 基础练习 十进制转十六进制
    蓝桥杯 基础练习 十六进制转十进制
    蓝桥杯 基础练习 十六进制转八进制
    51nod 1347 旋转字符串
    蓝桥杯 入门训练 圆的面积
    蓝桥杯 入门训练 Fibonacci数列
    链表相关
  • 原文地址:https://www.cnblogs.com/lovelyYakir/p/5836013.html
Copyright © 2011-2022 走看看