之前就想做这个底部弹出dialog的笔记,发现这篇已经写的很好,就搬过来方便自己看吧。
原文链接:http://www.cnblogs.com/xyc20080413/p/3461955.html
代码部分:
..... findViewById(R.id.button).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { createDialog(TestDialogActivity.this, R.style.custom_dialog); } }); ...... public Dialog createDialog(Context context, int style) { LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); LinearLayout dialogView = (LinearLayout) inflater.inflate(R.layout.play_mode, null); final Dialog customDialog = new Dialog(context, style); WindowManager.LayoutParams localLayoutParams = customDialog.getWindow().getAttributes(); localLayoutParams.gravity = Gravity.BOTTOM | Gravity.LEFT; localLayoutParams.x = outsideMenuWidth; localLayoutParams.y = 0; int screenWidth = ((Activity) context).getWindowManager().getDefaultDisplay().getWidth(); dialogView.setMinimumWidth(screenWidth - outsideMenuWidth); // dialogView.setMinimumHeight(10); customDialog.onWindowAttributesChanged(localLayoutParams); customDialog.getWindow().setSoftInputMode( WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE | WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); customDialog.setCanceledOnTouchOutside(false); customDialog.setCancelable(true); customDialog.setCanceledOnTouchOutside(true); customDialog.setContentView(dialogView); if (context instanceof Activity) { Activity activity = (Activity) context; if (!activity.isFinishing()) { customDialog.show(); } } return customDialog; }
dialog样式:
<style name="custom_dialog" parent="@android:style/Theme.Dialog"> <item name="android:windowFrame">@null</item> <item name="android:windowNoTitle">true</item> <item name="android:windowIsFloating">true</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowAnimationStyle">@style/dialog_animation</item> <item name="android:backgroundDimEnabled">true</item> </style> <style name="custom_dialog2" parent="custom_dialog"> <item name="android:windowBackground">@drawable/play_mode_bg</item> </style> <style name="dialog_animation" parent="@android:style/Animation.Dialog"> <item name="android:windowEnterAnimation">@anim/push_bottom_in</item> <item name="android:windowExitAnimation">@anim/push_bottom_out</item> </style>
底部进入动画:push_bottom_in.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="200" android:fromYDelta="100%p" android:toYDelta="0" /> <alpha android:duration="500" android:fromAlpha="0.0" android:toAlpha="1.0" /> </set>
底部退出动画:push_bottom_out.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="200" android:fromYDelta="100%p" android:toYDelta="0" /> <alpha android:duration="500" android:fromAlpha="0.0" android:toAlpha="1.0" /> </set>
相关推荐
本文将深入探讨如何实现`Dialog`弹出窗以及底部弹出窗的效果,包括中间弹出和底部弹出这两种常见场景。 首先,让我们了解`Dialog`的基本用法。在Android中,`Dialog`是基于`Window`的,通常表现为一个浮于当前...
本篇文章将详细讲解如何创建一个带有透明背景的底部弹出菜单,以及相关的实现技术和注意事项。 首先,我们来了解什么是`PopupWindow`。`PopupWindow`是Android SDK提供的一种轻量级的弹出窗口组件,它可以在屏幕上...
在Android应用开发中,设计和实现用户界面是至关重要的,其中一种常见的交互方式就是底部弹出菜单。"仿QQ空间底部弹出菜单"是借鉴了QQ空间应用中的一个功能,它能够提供一种优雅的方式来展示多个操作选项,通常用于...
在Android开发中,为了提供与iOS相似的用户体验,开发者经常需要实现自定义Dialog来模拟iOS的底部弹出菜单。这个自定义Dialog通常用于提供多个选项,例如在选择相册或打开相机之间切换。以下是如何实现这样一个功能...
本教程将介绍如何利用`WheelView`结合`Dialog`来实现一个底部弹出的滑动选择器,该实现方式代码简洁,易于理解,可以直接应用到你的项目中。 首先,我们来了解`WheelView`。`WheelView`是Android中的一个可滚动视图...
在本篇内容中,我们将深入探讨如何利用Dialog和PopupWindow来实现底部弹出,并讨论如何添加动画效果。 首先,我们来看Dialog。Dialog是一种半透明的窗口,它浮现在应用程序主窗口之上,通常用于显示警告、确认或...
Android滑出菜单,仿ios自定义Dialog滑出底部菜单,类似于发图片时候,从屏幕底部弹出的选择菜单,如示例图所示。不只是在IOS中,在Android系统中,这种菜单也是很早就有了。实现本功能的一些关键要点: 获取...
在Android应用开发中,"底部弹出Dialog"是一种常见的用户交互设计,用于在屏幕底部显示半透明或全屏的对话框,通常用于展示菜单、选项或者提示信息。本示例着重于实现一个适应不同分辨率手机的底部Dialog,并且提供...
通过以上步骤,我们就成功地实现了从底部弹出菜单或窗口的功能。注意,这个方法适用于简单的弹出菜单,如果需要更复杂的交互或动画效果,可能需要使用`PopupWindow`或其他组件。总的来说,理解Android的布局、...
本示例“从底部升起的Menu菜单_自定义Dialog”着重讲解如何创建一个从底部弹出,带有动画效果的菜单Dialog。我们将探讨以下几个关键知识点: 1. **自定义Dialog**:在Android中,Dialog是基于AlertDialog类构建的,...
Android 利用dialog弹出 二级下拉列表 ExpandableListView+DialogLI。...利用dialog和ExpandableListView实现的一个弹出二级菜单项,并进行了封装,可在activity和fragment中随意调用。简单实用,兼容性好。 二级列表
只要项目有需要展示底部弹出菜单或者功能选择的需求,此组件就能直接被引入并快速应用。 【核心知识点】: 1. **Dialog组件**:在Android开发中,Dialog是一种轻量级的弹窗,用于展示临时信息或者与用户交互。通常...
底部弹出视图(Bottom Sheet)是一种常见的交互元素,它可以从底部向上滑动显示更多的内容或者功能选项,常用于展示详情、设置菜单等。Android中的底部弹出视图通常带有平滑的动画效果,以提升用户体验。本文将深入...
在Android实现底部弹出按钮菜单升级版中,我们还需要注意一些细节问题,例如Dialog的显示和隐藏、控件的点击事件等。因此,在实现Android实现底部弹出按钮菜单升级版时,我们需要认真对待这些细节问题,以便确保应用...
在Android开发中,为了提供与iOS相似的用户体验,开发者经常需要实现一种底部弹出框(Bottom Dialog)的效果。这种设计通常用于展示有限的选项或功能,例如导航菜单、操作按钮等,用户可以轻松地从屏幕底部滑动出来...
Android自定义底部弹出框ButtomDialog是一种常用的Android用户界面控件,它可以在应用程序中提供一个弹出式的菜单或对话框,以便用户更方便地进行操作。下面将详细介绍Android自定义底部弹出框ButtomDialog的实现...
当然,随着Android版本的更新,对于弹出菜单的设计和实现方式也会有所优化,比如利用Material Design指南来提升用户体验。 总之,掌握PopupWindow的使用是Android UI开发中的必备技能之一。通过深入理解和实践,...
在这个“Popwindow弹出菜单实例”中,我们将探讨如何创建一个从屏幕低端滑出的菜单效果。首先,我们需要理解`PopupWindow`的基本概念及其用法。 `PopupWindow`是Android SDK提供的一种轻量级窗口,它可以显示在...