如何从Android对话框中删除黑色背景。这张图片显示了问题所在。
final Dialog dialog = new Dialog(Screen1.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.themechanger);
如何从Android对话框中删除黑色背景。这张图片显示了问题所在。
final Dialog dialog = new Dialog(Screen1.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.themechanger);
当前回答
对于任何使用自定义类的自定义对话框的人,你需要改变类中的透明度,在onCreate()中添加这一行:
getWindow().setBackgroundDrawableResource(android.R.color.transparent);
其他回答
按样式设置这些样式代码
<style name="Theme.Transparent" parent="android:Theme">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:backgroundDimEnabled">false</item>
</style>
然后在下面简单地将false更改为true
<item name="android:backgroundDimEnabled">true</item>
它会使你的背景变暗。
添加以下代码
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
或者换成这个:
dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
你可以使用:
setBackgroundDrawable(null);
方法。下面是文档:
/**
* Set the background to a given Drawable, or remove the background. If the
* background has padding, this View's padding is set to the background's
* padding. However, when a background is removed, this View's padding isn't
* touched. If setting the padding is desired, please use
* {@link #setPadding(int, int, int, int)}.
*
* @param d The Drawable to use as the background, or null to remove the
* background
*/
在Kotlin中,你可以使用以下代码:
val dialog = Dialog(context)
dialog.window?.decorView?.background = null
如果你使用Kotlin,这段代码可以帮助你:
Objects.requireNonNull(dialog.window)
?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))