类似DiaLog的Activity

1.若只是实现简单的弹出文字以及标题的dialog,使用系统自带的dialog就可以完成。但是有的时候dialog界面会由于需求的变化而过于复杂,这时候就需要一个弹出式的类似Activity的Dialog。其实只需要在注册activity中加入一句话就可:

<activity android:name="com.example.dialogactivity.DialogActivity" android:theme="@android:style/Theme.Dialog" >
</activity>

2.这样启动的activity中会带有标题栏,所以还需要在styles中添加一个自定义的Theme

    <style name="myDialogTheme" parent="android:Theme.Dialog">

        <!-- 窗口的框架 -->
        <item name="android:windowFrame">@null</item>
        <!-- 窗口是否是浮动的 -->
        <item name="android:windowIsFloating">true</item>
        <!-- 窗口是否是半透明的 -->
        <item name="android:windowIsTranslucent">false</item>
        <!-- 窗口是否有标题栏 -->
        <item name="android:windowNoTitle">true</item>
        <!-- 窗口内容覆盖 -->
        <item name="android:windowContentOverlay">@null</item>
        <!-- 是否启用背景模糊 -->
        <item name="android:backgroundDimEnabled">false</item>
        <!-- 窗口背景色和边框,设为null会没有边框和背景 -->
        <item name="android:windowBackground">@null</item>
    </style>

3.然后在注册Activity中引用自定义的主题

        <activity  android:name="com.example.dialogactivity.DialogActivity" android:theme="@style/myDialogTheme" >
        </activity>

4.为DialogActivity添加圆角
在drawable中添加一个xml,内容如下

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

    <solid android:color="#ffffffff" />
    <!-- 边框宽度和背景色 -->
    <stroke  android:width="1dp" android:color="#ffffffff" />
    <!-- 圆角所对应的半径 -->
    <corners android:radius="5dp" />
    <!-- 上下左右边距 -->
    <padding  android:bottom="3dp" android:left="1dp" android:right="1dp" android:top="3dp" />

</shape>

更改Dialog的Theme

 <style name="DoctorDescDialogTheme" parent="android:Theme.Dialog">

        <!-- 窗口的框架 -->
        <item name="android:windowFrame">@null</item>
        <!-- 窗口是否是浮动的 -->
        <item name="android:windowIsFloating">true</item>
        <!-- 窗口是否是半透明的 -->
        <item name="android:windowIsTranslucent">false</item>
        <!-- 窗口是否有标题栏 -->
        <item name="android:windowNoTitle">true</item>
        <!-- 窗口内容覆盖 -->
        <item name="android:windowContentOverlay">@null</item>
        <!-- 是否启用背景模糊 -->
        <item name="android:backgroundDimEnabled">true</item>
        <!-- 窗口背景色和边框,设为null会没有边框和背景模糊效果 -->
        <item name="android:windowBackground">@drawable/dialog_circle_corner</item>
    </style>

你可能感兴趣的:(android,dialog,弹出框)