我想实现一个效果,从底部向上逐渐弹出。如下图所示:

1.点击 显示 按钮时,一个dialog对话框从底部慢慢向上弹出。

2.关闭dialog时, dialog缓慢的移动向底部消失。很平滑的效果。

   

实现方式:

在activity中写代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public class MainActivity extends Activity {
    Button button1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
         
        button1 = (Button)findViewById(R.id.button1);
        button1.setOnClickListener(mOnClickListener);
    }
    OnClickListener mOnClickListener = new View.OnClickListener(){
        @Override
        public void onClick(View v) {
            //TODO Auto-generated method stub  
            AlertDialog dialog = new AlertDialog.Builder(MainActivity.this
                    .setTitle("title").setMessage("message").create(); 
            <span style="color: #ff0000;"><strong>Window window = dialog.getWindow(); 
            window.setGravity(Gravity.BOTTOM);  //此处可以设置dialog显示的位置  
            window.setWindowAnimations(R.style.mystyle);  //添加动画  </strong> </span>
            dialog.show();
        }
         
    };
}

 准备一个 style资源文件,创建 mystyle

  <style name="mystyle" parent="android:Animation"><item name="@android:windowEnterAnimation">@anim/dialog_enter</item><item name="@android:windowExitAnimation">@anim/dialog_exit</item>
</style>

在这个mystyle中使用了两个动画,如下:

dialog_enter.xml

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" ><translateandroid:duration="600"android:fromYDelta="100%p" /></set>

dialog_exit.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" ><translateandroid:duration="600"android:toYDelta="100%p" /></set>

至此完成。

代码解释:

1. 为 dialog 所在的windows 设置了一个 动画样式 style

2. 该style 指定了 窗体(windows)进入的动画(dialog_enter) 和离开的动画 (dialog_exit)

3. 在进入时的动画dialog_enter 中,写了一个 translate 的变化,指定从 其父容器的 100% 位置开始。 其父容器的 100% 位置 是 屏幕以外的位置,是看不到,这是一个开始点。没有指定结束点,结束点就默认 本身应该显示的位置(即将显示的位置)。

4.同理,dialog_exit定义了离开时动画。该动画未指定开始位置,指定了结束位置是  其父容器的 100% 位置 ,这样就慢慢的向下消失在屏幕以外。

android:toYDelta="100%p" 中的 100% 指示了 其父容器的 100% 位置

而如果写成

android:toYDelta="100%",即是指示了 起自身的 100% 位置。

参考:

http://www.linuxidc.com/Linux/2012-04/59153.htm

http://blog.csdn.net/ztp800201/article/details/7387668

从页面底部向上弹出dialog,消失时逐渐向下(转)相关推荐

  1. Android之靠谱的Activity从底部向上弹出,finish从顶部向下消失(不黑屏)

    1 .需求 要求Activity从底部向上弹出,finish从顶部向下消失(不黑屏) 2.解决办法 准备3个动画xml文件 app_bottom_in.xml <?xml version=&qu ...

  2. Flutter 底部向上弹出的动画按钮

    题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,优美的应用体验 来自于细节的处理,更源自于码农的自我要求与努力 Flutter是谷歌推出的最新的移动开发框架. [x1]微信公众号的每日 ...

  3. 移动端弹出层滚动时禁止body滚动

    相信很多写移动端的朋友会遇到这个问题,我也遇到了,之后就辛辛苦苦的在网上找解决办法,下面我大概提一下我在网上看到的几种办法,行不行的通呢?本人就亲测了下.本人学的还不是太深,如果有什么不对的地方或者有 ...

  4. android 底部弹窗失效,Android实现从底部弹出Dialog(和PopWindow实现的效果同样)

    布局文件:dialog_custom_layout.xmlandroid android:orientation="vertical" android:layout_width=& ...

  5. 向上弹出菜单jQuery插件

    插件名:柯乐义 英文名:Keleyi js文件名称:jquery.keleyi.js 插件功能:该插件可以让你轻易地在页面上构建一个向上弹出的二级菜单. 支持浏览器: keleyi 0.1.4版本支持 ...

  6. jquery mobile用代码弹出dialog

    一.点击弹出dialog 见 http://www.w3school.com.cn/jquerymobile/jquerymobile_pages.asp 中"将页面作为dialog&quo ...

  7. 模仿微信图片编辑器--动画实现向上弹出文字编辑框(遮罩)界面

    豪言壮志 今天天气不错,挺风和日丽的,出去逛逛街,溜溜弯,拍上一张美图,配上高逼格的格言警句,发到朋友圈,一片鸡汤文就此诞生... 最近会有事没事会在朋友圈发动态:写一句格言警句,配上一张意境美图.因 ...

  8. bootstrap 模态框弹出就消失了_bootstrap模态框消失问题的解决方法

    这篇文章主要为大家详细整理了bootstrap模态框消失不消失各种问题的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 小编主要从网上整理了网友提出来的关于bootstrap模态框消失的不 ...

  9. 软键盘显示的情况下弹出dialog,dialog会出现在软键盘上方

    问题: 界面中有一个edittext,选中时候弹出软键盘:在软键盘显示的情况下点击另外一个弹出底部dialog的控件时候,发现dialog出现在软键盘上方了,如下图所示: 解决办法 弹出dialog之 ...

最新文章

  1. discuz如何去掉论坛的网页后缀名称forum.php
  2. SpringBoot:与JOOQ合作
  3. 四元数乘法_复数的意义——四元数
  4. 32怎么将mcu内的代码擦除_凭借这款MCU产品,瑞萨电子竟然超越了ARM?
  5. hdfs-大数据Week6-DAY2-2-hdfs
  6. matlab有参函数,定义含参量函数 matlab
  7. GraphX 基础一
  8. 预测科技未来发展趋势的10个定律
  9. GAE+bottle+jinja2+beaker快速开发demo - Python,GAE - language - ITeye论坛
  10. 美国音乐学院计算机音乐专业排名2015年,美国音乐学院排名前100
  11. AWVS11安装、操作
  12. u盘iso安装服务器系统怎么安装win7系统安装系统教程,u盘iso安装系统,小编教你u盘怎么安装win7系统...
  13. 【ROM制作工具】小白轻松一键搞定纯净ROM刷机包
  14. PHP鲜花销售管理系统毕业设计
  15. Mac 外接键盘Command键( Windows 徽标键)失效
  16. 毕业一年,我是如何实现每月两千副业之路
  17. arm oe linux gnueabi 系统,交叉编译移植openssl
  18. 几何画板年终大促倒计时,别错过!
  19. leek()函数使用
  20. Html5的废弃与新增全局属性及元素

热门文章

  1. 7-63 情人节 (15 分)(c++stl)
  2. 7-1 射击游戏 (20 分)
  3. 基于顺序存储结构的图书信息表的旧图书的出库(C++)
  4. 执行`sudo apt-get install xx`命令时,报错问题解决
  5. 为类添加方法java_Java 7 : 为接口类增加“public defender 方法”
  6. 字符集匹配:\s 匹配一个空格,一边后面加量词表示多个空格,\s*表示0个以上空格,\s+表示1个以上空格,\s相当于[\f\r\n\t ]5种空白字符。...
  7. 【转载】图片 CSS:怎样才能 “响应式 + 固定宽高比例”?
  8. MySQL 基本应用 count() 与 group by
  9. MAVEN Error: Using platform encoding (GBK actually) to copy filtered resources.....
  10. bzoj 1607: [Usaco2008 Dec]Patting Heads 轻拍牛头