自定义Dialog,实现由下而上的弹出效果(模仿QQ退出等)

方法:

public Dialog createDialog(Context context, View view) {
        Dialog mSelectPhotoDialog = null;
        mSelectPhotoDialog = new Dialog(context, R.style.transparentFrameWindowStyle);
        mSelectPhotoDialog.setContentView(view);
        Window window = mSelectPhotoDialog.getWindow();
        // 设置显示动画
        window.setWindowAnimations(R.style.select_photo_dialog_animstyle);
        WindowManager.LayoutParams wl = window.getAttributes();
        wl.x = 0;
        wl.y = getActivity().getWindowManager().getDefaultDisplay().getHeight();
        // 以下这两句是为了保证按钮可以水平满屏
        wl.width = ViewGroup.LayoutParams.MATCH_PARENT;
        wl.height = ViewGroup.LayoutParams.WRAP_CONTENT;
        // 设置显示位置
        mSelectPhotoDialog.onWindowAttributesChanged(wl);
        // 设置点击外围解散
        mSelectPhotoDialog.setCanceledOnTouchOutside(true);

        mSelectPhotoDialog.show();
}

样式:

<!-- 头像弹出窗的动画效果 -->
    <style name="select_photo_dialog_animstyle">
        <item name="android:windowEnterAnimation">@anim/photo_dialog_in_anim</item>
        <item name="android:windowExitAnimation">@anim/photo_dialog_out_anim</item>
    </style>
<!-- 头像弹出窗的样式:无边框 背景透明-->
    <style name="transparentFrameWindowStyle" parent="android:style/Theme.Dialog">
        <item name="android:windowBackground">@android:color/transparent</item>
    </style>

动画:

(一)、photo_dialog_in_anim

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="500"
        android:fromXDelta="0"
        android:fromYDelta="1000"
        android:toXDelta="0"
        android:toYDelta="0" />

</set>

(二)、photo_dialog_out_anim

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="500"
        android:fromXDelta="0"
        android:fromYDelta="0"
        android:toXDelta="0"
        android:toYDelta="1000" />

</set>
时间: 2024-08-05 19:44:59

自定义Dialog,实现由下而上的弹出效果(模仿QQ退出等)的相关文章

Android listview 制作表格样式+由下往上动画弹出效果实现

效果是这样的:点击按下弹出表格的按钮,会由下往上弹出右边的列表,按下返回按钮就由上往下退出界面. 布局文件: activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" &

css+html+js实现下拉及多级弹出菜单

本文将使用css+html+js实现横向菜单,具有下拉的多级弹出菜单. 首先我们来看看效果图: 首先应该写html部分的代码,代码比较简单,代码如下: <body> <div id="menu"> <ul> <li><a href="#" id="current">首页</a></li> <li><a href="#">

Web标准:八、下拉及多级弹出菜单

Web标准:八.下拉及多级弹出菜单 知识点: 1.带下拉子菜单的导航菜单 2.绝对定位和浮动的区别和运用 3.CSS自适应宽度滑动门菜单 1)带下拉子菜单的导航菜单 带下拉子菜单的就是在一级导航下加一个二级菜单.这个在上一节第七节课上我已经做出来了,这里就不再写了.再重温一下注意点:如果要在一级菜单下增加二级菜单,二级菜单需要加一个float:none;来去掉浮动,否则二级菜单也会浮动到一行上去了. 2)绝对定位和浮动的区别和运用 绝对定位:它的位置将依据浏览器左上角开始计算或相对于父容器(在父

MVC4下如何实现模态弹出对话框效果--对话框里可以实现翻页效果(2)

其实上文只是对如何加代码的顺序方法的表述,这里面的代码每个函数是什么意思,要如何理解?需要我们深思. 我们先大框子去理解:我们上文在控制器里只是去HTTPGET了,HTTPget理解其实就是请求.那么我么要保存,要插入的时候要怎么做. 上文在控制器里增加了NEW的动作,当然我们要增加NEW的视图(New.cshtml),视图里面会有一个代码. using(Ajax.BeginForm("New","DataModule",new AjaxOptions{ Inser

WPF下抑制WebBrowser不停弹出各种脚本错误

原文:WPF下抑制WebBrowser不停弹出各种脚本错误 WPF下的WebBrowser没有直接抑制错误弹出的方法或者属性,MSDN上提供解决方案如下: static void SuppressScriptErrors(WebBrowser webBrowser, bool hide) { webBrowser.Navigating += (s, e) => { var fiComWebBrowser = typeof(WebBrowser).GetField("_axIWebBrows

wuzhicms上传弹出层,如何返回数据到当前页面?

我们要实现下面功能: 上传图片后,返回图片列表到页面: 点击开始上传后,自动返回结果到页面. 原理:通过openiframe打开上传弹出层. 其中: returntype 在这里是 2 www/res/js/html5upload/extension.js中的 callback_dianping 函数执行返回结果的处理. 再通过:openiframe函数把返回的结果插入到页面.

popupWindow从下往上弹出效果的实现

效果如图所示,点击开始按钮,popWindow从下往上出来,再点击popWindow外面,popWindow又从上往下消失 可以看出来,上面的popupWindow是半透明的,后面我会细说. 最基本的是activity_main了,很简单,就只是一个button,这里我就不贴代码了. 接下来的是,popWindow的界面了 代码如下: 这里注意我里面的那个注释 <?xml version="1.0" encoding="utf-8"?> <Line

手把手教会popupWindow从下往上弹出效果的实现

效果如图所示,点击开始按钮,popWindow从下往上出来,再点击popWindow外面,popWindow又从上往下消失 可以看出来,上面的popupWindow是半透明的,后面我会细说. 最基本的是activity_main了,很简单,就只是一个button,这里我就不贴代码了. 接下来的是,popWindow的界面了 代码如下:这里注意我里面的那个注释 <?xml version="1.0" encoding="utf-8"?> <Linea

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

在Android开发中,有很多情况下我们需要使用到对话框,遗憾的是,安卓自带的对话框样式不能满足我们实际的需要,所以往往需要我们自定义对话框,具体做法:写一个对话框继承自Dialog实现他的一个构造方法(取决于你的用法),在OnCreate()中进行处理.当然更多情况下,你是不需要自己去写的,会抄代码一样也是一种本事,这里我介绍一种底部弹出的对话框,希望对你的学习和工作有所帮助,下面是效果图: 下面介绍具体做法: 导入依赖库: dependencies { compile 'com.github