类似DiaLog的Activity

来源:互联网 发布:linux基本命令使用 编辑:程序博客网 时间:2024/04/29 23:27

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>
0 0
原创粉丝点击