其实很简单,步骤如下:
1、需要把对话框的默认背景改为透明。
方法:自定义Dialog的样式。
<!--对话框透明背景-->
<style name="Translucent_NoTitle" parent="android:style/Theme.Dialog">
<!--边框-->
<item name="android:windowFrame">@null</item>
<!--是否浮现在activity之上-->
<item name="android:windowIsFloating">true</item>
<!--半透明-->
<item name="android:windowIsTranslucent">false</item>
<!--无标题-->
<item name="android:windowNoTitle">true</item>
<!--提示框背景(透明)-->
<item name="android:windowBackground">@color/transparent</item>
<!--模糊-->
<item name="android:backgroundDimEnabled">true</item>
</style>
<color name="transparent">#00000000</color>
如何使用:
final Dialog dialog = new Dialog(mContext, R.style.Translucent_NoTitle);
注意:要用Dialog,不要用AlertDialog。因为AlertDialog已经具有本身的默认样式了。
2、透过Margin之类的属性进行布局排列即可。
如何向让实现按钮或者图片的悬浮效果,只需要设置相应布局的Margin或者Padding属性即可。(因为对话框的背景已经是透明的了)
PS:如果想要设置对话框整体的透明度的话(内容也会跟着变),代码如下:
//提示框整体透明度
Window window = dialog.getWindow();
WindowManager.LayoutParams lp = window.getAttributes();
lp.alpha = 0.1f;// 设置透明度为0.5
window.setAttributes(lp);