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

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

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" >

        <translate
            android: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" >

    <translate
        android: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,消失时逐渐向下(转)

时间: 2024-10-04 20:42:55

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

android开发(31) 动画演示 - 从页面底部向上弹出dialog,消失时逐渐向下

我想实现一个效果,从底部向上逐渐弹出.如下图所示: 1.点击 显示 按钮时,一个dialog对话框从底部慢慢向上弹出. 2.关闭dialog时, dialog缓慢的移动向底部消失.很平滑的效果.     实现方式: 在activity中写代码如下 public class MainActivity extends Activity { Button button1; @Override protected void onCreate(Bundle savedInstanceState) { su

Android 底部弹出Dialog(横向满屏)

项目中经常需要底部弹出框,这里我整理一下其中我用的比较顺手的一个方式(底部弹出一个横向满屏的dialog). 效果图如下所示(只显示关键部分): 步骤如下所示: 1.定义一个dialog的布局(lay_share.xml) 1 <?xml version="1.0" encoding="utf-8"?> 2 3 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/

点击页面其他地方的时候,让弹出框消失

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ

关于一条定制长按Power键弹出Dialog的需求

如题,需要定制长按Power键弹出的Dialog,UI上的大致效果是:全屏,中间下拉按钮“Swipe Down To Power Off”下拉关机,底部左右两侧“Reboot”,“Cancel”按钮,分别是重启,取消操作.并要求弹出Dialog的同时,背景渐变模糊,操作控件有相应动画效果,执行相应操作有同步动画,退出界面背景渐变至透明消失.设计效果酱紫: 具体控件动画要求就不再详述.主要两件事:1.关机流程,更准确的说应该是对长按Power键的处理:2.定制Dialog. 1.长按Power键,

向上弹出菜单jQuery插件

插件名:柯乐义英文名:Keleyijs文件名称:jquery.keleyi.js插件功能:该插件可以让你轻易地在页面上构建一个向上弹出的二级菜单. 支持浏览器: keleyi 0.1.4版本支持IE6以及以上.Chrome.火狐(Firefox).欧朋(Opera).Safari等浏览器,也支持IE6 keleyi 0.1.3版本支持IE8以及以上.Chrome.火狐(Firefox).欧朋(Opera).Safari等浏览器,不支持IE6. 示例查看:http://keleyi.com/kel

jquery实现弹出即消失的提示层

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <sc

Android 继承DialogFragment弹出dialog对话框一

相信现在Android软件开发员,都经常用到这种方式弹出对话框的.Android继承DialogFragment弹出dialog对话框,这样弹出有很多可以灵活处理地方,想什么启动,什么时候数据接口返回都可以,有自已layout布局,生命周期.下面看看我写demo. 本文代码下载:请点击这里 转载请注明出处: http://blog.csdn.net/qq_16064871 一.MainActivity package com.example.fragmentdialogdemo; import

Android 继承DialogFragment弹出dialog对话框二

之前写过一篇关于Android 继承DialogFragment弹出dialog对话框一,这次是在上次的基础上修改了一些东西,就是怎样在DialogFragment中获取getDialog()是获取当前对话框句柄.就可以进行布局可变的灵活操作.就像getactivity();一样使用.下面看代码. 本文demo下载地址:点击 MainActivity package com.example.fragmentdialogdemo; import com.example.fragmentdialog

JavaScript页面刷新与弹出窗口问题的解决方法

1. [代码][JavaScript]代码     ?一.无提示刷新网页 大家有没有发现,有些网页,刷新的时候,会弹出一个提示窗口,点“确定”才会刷新.而有的页面不会提示,不弹出提示窗口,直接就刷新了. 如果页面没有form,则不会弹出提示窗口. 如果页面有form表单,  a)< form method="post" ...> 会弹出提示窗口  b)< form method="get" ...> 不会弹出 二.javascript刷新页面