`
becherpan
  • 浏览: 6089 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

转:Dialog 实现底部弹出菜单

 
阅读更多

之前就想做这个底部弹出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`弹出窗以及底部弹出窗的效果,包括中间弹出和底部弹出这两种常见场景。 首先,让我们了解`Dialog`的基本用法。在Android中,`Dialog`是基于`Window`的,通常表现为一个浮于当前...

    android 底部弹出菜单(带透明背景)

    本篇文章将详细讲解如何创建一个带有透明背景的底部弹出菜单,以及相关的实现技术和注意事项。 首先,我们来了解什么是`PopupWindow`。`PopupWindow`是Android SDK提供的一种轻量级的弹出窗口组件,它可以在屏幕上...

    仿QQ空间底部弹出菜单

    在Android应用开发中,设计和实现用户界面是至关重要的,其中一种常见的交互方式就是底部弹出菜单。"仿QQ空间底部弹出菜单"是借鉴了QQ空间应用中的一个功能,它能够提供一种优雅的方式来展示多个操作选项,通常用于...

    自定义Dialog仿ios弹出底部菜单

    在Android开发中,为了提供与iOS相似的用户体验,开发者经常需要实现自定义Dialog来模拟iOS的底部弹出菜单。这个自定义Dialog通常用于提供多个选项,例如在选择相册或打开相机之间切换。以下是如何实现这样一个功能...

    WheelView底部弹出滑动选择器(对话框实现)

    本教程将介绍如何利用`WheelView`结合`Dialog`来实现一个底部弹出的滑动选择器,该实现方式代码简洁,易于理解,可以直接应用到你的项目中。 首先,我们来了解`WheelView`。`WheelView`是Android中的一个可滚动视图...

    Dialog和PopupWindow底部弹出

    在本篇内容中,我们将深入探讨如何利用Dialog和PopupWindow来实现底部弹出,并讨论如何添加动画效果。 首先,我们来看Dialog。Dialog是一种半透明的窗口,它浮现在应用程序主窗口之上,通常用于显示警告、确认或...

    Android 仿ios屏幕底部滑出的弹出菜单效果.rar

    Android滑出菜单,仿ios自定义Dialog滑出底部菜单,类似于发图片时候,从屏幕底部弹出的选择菜单,如示例图所示。不只是在IOS中,在Android系统中,这种菜单也是很早就有了。实现本功能的一些关键要点:  获取...

    android底部弹出Dialog

    在Android应用开发中,"底部弹出Dialog"是一种常见的用户交互设计,用于在屏幕底部显示半透明或全屏的对话框,通常用于展示菜单、选项或者提示信息。本示例着重于实现一个适应不同分辨率手机的底部Dialog,并且提供...

    Android使用Activity实现从底部弹出菜单或窗口的方法

    通过以上步骤,我们就成功地实现了从底部弹出菜单或窗口的功能。注意,这个方法适用于简单的弹出菜单,如果需要更复杂的交互或动画效果,可能需要使用`PopupWindow`或其他组件。总的来说,理解Android的布局、...

    从底部升起的Menu菜单_自定义Dialog

    本示例“从底部升起的Menu菜单_自定义Dialog”着重讲解如何创建一个从底部弹出,带有动画效果的菜单Dialog。我们将探讨以下几个关键知识点: 1. **自定义Dialog**:在Android中,Dialog是基于AlertDialog类构建的,...

    Android 利用dialog弹出 二级下拉列表 ExpandableListView+DialogLI

    Android 利用dialog弹出 二级下拉列表 ExpandableListView+DialogLI。...利用dialog和ExpandableListView实现的一个弹出二级菜单项,并进行了封装,可在activity和fragment中随意调用。简单实用,兼容性好。 二级列表

    仿QQ底部弹出框

    只要项目有需要展示底部弹出菜单或者功能选择的需求,此组件就能直接被引入并快速应用。 【核心知识点】: 1. **Dialog组件**:在Android开发中,Dialog是一种轻量级的弹窗,用于展示临时信息或者与用户交互。通常...

    Android 带动画的底部弹出视图

    底部弹出视图(Bottom Sheet)是一种常见的交互元素,它可以从底部向上滑动显示更多的内容或者功能选项,常用于展示详情、设置菜单等。Android中的底部弹出视图通常带有平滑的动画效果,以提升用户体验。本文将深入...

    Android实现底部弹出按钮菜单升级版

    在Android实现底部弹出按钮菜单升级版中,我们还需要注意一些细节问题,例如Dialog的显示和隐藏、控件的点击事件等。因此,在实现Android实现底部弹出按钮菜单升级版时,我们需要认真对待这些细节问题,以便确保应用...

    类似于IOS底部Dialog

    在Android开发中,为了提供与iOS相似的用户体验,开发者经常需要实现一种底部弹出框(Bottom Dialog)的效果。这种设计通常用于展示有限的选项或功能,例如导航菜单、操作按钮等,用户可以轻松地从屏幕底部滑动出来...

    Android自定义底部弹出框ButtomDialog

    Android自定义底部弹出框ButtomDialog是一种常用的Android用户界面控件,它可以在应用程序中提供一个弹出式的菜单或对话框,以便用户更方便地进行操作。下面将详细介绍Android自定义底部弹出框ButtomDialog的实现...

    UI之弹出菜单效果

    当然,随着Android版本的更新,对于弹出菜单的设计和实现方式也会有所优化,比如利用Material Design指南来提升用户体验。 总之,掌握PopupWindow的使用是Android UI开发中的必备技能之一。通过深入理解和实践,...

    Popwindow弹出菜单实例

    在这个“Popwindow弹出菜单实例”中,我们将探讨如何创建一个从屏幕低端滑出的菜单效果。首先,我们需要理解`PopupWindow`的基本概念及其用法。 `PopupWindow`是Android SDK提供的一种轻量级窗口,它可以显示在...

Global site tag (gtag.js) - Google Analytics