最近开发一个功能,需要实现一个半透明的Activity,之前都是通过在AndroidManifest中设置android:theme="@android:style/Theme.Translucent"的方法实现的。结果QA同学发现在魅族手机上会显示成不透明的灰色效果。后来把Activity的布局文件设置android:background="@color/transparent",还是不起作用。
于是想到改为使用Window的alpha属性来实现,设置WindowManager.LayoutParams的alpha为0.5,能实现透明效果,但Activity上所有的控件也会变成半透明。
在调试过程中发现Window有一个setBackgroundDrawable的接口,尝试了一下,通过getWindow().setBackgroundDrawable()方法,传入一张半透明的.9图片作为背景,是能够在魅族手机上实现半透明效果的。
时间: 2024-11-03 01:22:25