简介: 因为代码中的各种需求,需要用到 Dialog 的方式都不相同。因为用过其中两种了,觉得还不错,打算总结一下。


一. 使用 DialogFragment

这应该是最常见也是最推荐的一种用法,使用步骤如下,可以参考之前的文章 Android: DialogFragment 篇

  1. 二. 使用 Dialog 风格的 Activity

参考链接

  1. 为 Activity 定义一个样式

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <style name="dialog_style">
    <!--设置dialog的背景-->
    <item name="android:windowBackground">@android:color/transparent</item>
    <!--设置Dialog的windowFrame框为无-->
    <item name="android:windowFrame">@null</item>
    <!--设置无标题-->
    <item name="android:windowNoTitle">true</item>
    <!--是否浮现在activity之上-->
    <item name="android:windowIsFloating">true</item>
    <!--是否半透明-->
    <item name="android:windowIsTranslucent">true</item>
    <!--设置窗口内容不覆盖-->
    <item name="android:windowContentOverlay">@null</item>
    <!--设置动画,在这里使用让它继承系统的Animation.Dialog-->
    <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
    <!--背景是否模糊显示-->
    <item name="android:backgroundDimEnabled">true</item>
    </style>
  2. AndroidMainfest.xml 中,将 Activity 的主题设定为 1的 style

    1
    2
    3
    <activity 
    android:name=".ImageActivity"
    android:theme="@style/dialog_style" />
  3. 自定义布局文件,设置启动条件,就能看到效果了。

三. 使用 AlertDialog