一 设置Activity背景完全透明
1 设置样式Theme.Translucent
可用的样式有:
@android:style/Theme.Translucent@android:style/Theme.Translucent.NoTitleBar@android:style/Theme.Translucent.NoTitleBar.Fullscreen
注意:如果直接使用了,你的程序也许会直接崩溃!原因可能是你的Activity继承的是V7包的AppCompatActivity,这时你所使用的主题要与Theme.AppCompat兼容,否则程序就会崩溃了。
解决方案:
使你的Activity继承android.app包的Activity。
2 使用background
在布局直接使用属性background,可惜我试过了是没有效果的。
3 自定义样式如下:
<style name="myTransparent"> <item name="android:windowBackground">@color/transparent</item> <item name="android:windowNoTitle">true</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowAnimationStyle">@android:style/Animation.Translucent</item> </style>
<!--半透明-->
<color
name=
"gray_64"
>
#646464
</color>
<color
name=
"transparent"
>
#00000000
</color>
说明:如果直接这样子使用 了,程序可能崩溃,原因和1一样,
其中解决方案一:
参考1就是: 使你的Activity继承android.app包的Activity
解决方案二:
使我们自定义的样式继承Application标签下设置的样式后,再设置透明背景,代码如下:
<style name="myTransparent" parent="@style/AppTheme"> <item name="android:windowBackground">@color/transparent</item> <item name="android:windowNoTitle">true</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowAnimationStyle">@android:style/Animation.Translucent</item> </style>
4 设置Window参数
@Override public void onStart() { super.onStart(); Window window = getWindow(); WindowManager.LayoutParams windowParams = window.getAttributes(); windowParams.alpha = 1f;//1.0全透明.0不透明. window.setAttributes(windowParams); }说明,在onStart方法中通过windowParams.alpha属性设置透明度,这个方法设置完透明可以但是设置半透明就不行了,不能达到对话框弹起来的那中效果。
二设置Activity背景半透明
1 自定义样式继承 @android:style/Theme.Dialog(推荐)
1 自定义样式继承 @android:style/Theme.Dialog(推荐)
<style name="myTransparent" parent="@android:style/Theme.Dialog"> <item name="android:windowBackground">@color/gray_64</item> <item name="android:windowNoTitle">true</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowAnimationStyle">@android:style/Animation.Translucent</item> <item name="android:windowIsFloating">true</item> <!--<item name="android:windowContentOverlay">@null</item>--> <!--<item name="android:backgroundDimEnabled">true</item>--> </style>说明,这样Activity启动后就能达到对话框效果,如果程序崩溃参考上述(一)中的1。