项目要求做一个对话框样式的页面,仅页面上的文字和按钮可见,背景效果和对话框类似。下面看看怎么实现:
方案一:
首先实现一个继承自对话框样式的主题:
@android:color/transparent的值为#00000000。前两个00表示透明度,后6位为RGB值。#00000000表示全透明的黑色。
然后把这个主题应用到activity:
<activity android:name=".activity.TestActivity" android:theme="@style/DarkTransParent" />
这个activity不用做别的设置,布局文件里仅包含一个TextView和一个Button。
如果在布局文件里给它们设置了背景色,则背景色也会显示出来。
效果如下:
但是这个方法有缺点:
1. 页面布局会被自动调整,不易控制。
2. 背景的暗色不好改。
所以尝试了一种新的方案:
方案二:
继承系统的透明主题,然后自定义windowBackground属性:
<style name="DarkTransParent" parent="android:style/Theme.Translucent"> <item name="android:windowBackground">@color/lock_bg style>
看下Theme.Translucent的定义:
然后,lock_bg即为我们想要设置的背景的颜色,我们可以在colors.xml中自定义其值:
<color name="lock_bg">#cc000000
然后把这个主题应用到activity即可:
<activity android:name=".activity.TestActivity" android:theme="@style/DarkTransParent" />