去除安卓自定义Dialog黑色背景,设置无边框,透明

时间:2022-04-17 16:47:09

我们在自定义Dialog的时候,往往会希望除去安卓系统定义背景和标题,以便于更好的显示我们自己想要的效果。

其实我们只需要注意几个地方就行了。

1.在Style文件的中定义Dialog的主题

  1. <style name="MyDialog">  
  2.         <item name="android:windowFrame">@null</item>  
  3.         <item name="android:windowBackground">@android:color/transparent</item>  
  4.         <item name="android:windowNoTitle">true</item>  
  5.         <item name="android:windowIsFloating">true</item>  
  6.         <item name="android:windowContentOverlay">@null</item>  
  7. </style>  

 

主要是这句:<item name="Android:windowBackground">@android:color/transparent</item>  把windowBackground设置为透明

 

2.在自定义的Dialog构造方法中使用,如果你在DIalog的布局文件中去使用这个主题是没有作用的,必须在三个构造方法都要使用该主题,这样防止进入哪个构造方法时没调用主题。不然就看不到效果了。

  public MyDialog(Context context){

    super(context,R.stytle.MyDialog);

  }

 public MyDialog(Context context,int thremId){

    super(context,R.stytle.MyDialog);

  }

 

这样你的Dialog应该是可以显示出无黑色背景和无边框的。