关键技术点:
在AndroidManifest.xml中定义activity时,加上android:theme="@android:style/Theme.Dialog" 属性即可
例如:
<activity
android:name=".DialogActivity"
android:label="测试的"
android:theme="@android:style/Theme.Dialog">
</activity>
效果如下图所示:
拓展一:android中所有的theme
?android:theme="@android:style/Theme.Dialog" 将一个Activity显示为对话框模式
?android:theme="@android:style/Theme.NoTitleBar" 不显示应用程序标题栏
?android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 不显示应用程序标题栏,并全屏
?android:theme="Theme.Light" 背景为白色
?android:theme="Theme.Light.NoTitleBar" 白色背景并无标题栏
?android:theme="Theme.Light.NoTitleBar.Fullscreen" 白色背景,无标题栏,全屏
?android:theme="Theme.Black" 背景黑色
?android:theme="Theme.Black.NoTitleBar" 黑色背景并无标题栏
?android:theme="Theme.Black.NoTitleBar.Fullscreen" 黑色背景,无标题栏,全屏
?android:theme="Theme.Wallpaper" 用系统桌面为应用程序背景
?android:theme="Theme.Wallpaper.NoTitleBar" 用系统桌面为应用程序背景,且无标题栏
?android:theme="Theme.Wallpaper.NoTitleBar.Fullscreen" 用系统桌面为应用程序背景,无标题栏,全屏
?android:theme="Translucent"
?android:theme="Theme.Translucent.NoTitleBar"
?android:theme="Theme.Translucent.NoTitleBar.Fullscreen"
?android:theme="Theme.Panel"
?android:theme="Theme.Light.Panel"
参考地址:http://blog.youkuaiyun.com/tianshuguang/article/details/6898355
拓展二:自定义Theme
AndroidManifest.xml 文件中,申明 activity 的主题使用自定义对话框样式。
<
activity
android:name
=
".SensorGetValueActivity"
android:label
=
"@string/activity_custom_dialog"
android:theme
=
"@style/Theme.CustomDialog"
>
<
intent-filter
>
<
action
android:name
=
"android.intent.action.MAIN"
/>
<
category
android:name
=
"android.intent.category.SAMPLE_CODE"
/>
</
intent-filter
>
</
activity
>
2、res/values/styles.xml 样式文件中定义一个对话框主题样式,这里继承了 android:style/Theme.Dialog 主题,
并且窗口样式 android:windowBackground 引用了 @drawable/filled_box
<
style
name
=
"Theme.CustomDialog"
parent
=
"android:style/Theme.Dialog"
>
<
item
name
=
"android:windowBackground"
>@drawable/filled_box</
item
>
</
style
>
3、res/drawable/filled_box.xml 定义了 Shape 类型的 drawable(抽象的可画区域),最终是通过这个来实现新对话框的样式。
<
shape
xmlns:android
=
"http://schemas.android.com/apk/res/android"
>
<
solid
android:color
=
"#f0600000"
/>
<
stroke
android:width
=
"3dp"
color
=
"#ffff8080"
/>
<
corners
android:radius
=
"3dp"
/>
<
padding
android:left
=
"10dp"
android:top
=
"10dp"
android:right
=
"10dp"
android:bottom
=
"10dp"
/>
</
shape
>