我有自定义AlertDialog,我想让它的背景完全透明。 通常,要使活动完全透明,我会执行以下操作
在xml布局中将背景设置为#00000000
在活动的清单集android:theme="@android:style/Theme.Holo.Dialog"
中。
在onCreate中添加getWindow().setBackgroundDrawable(new ColorDrawable(0))
。
但是现在我正在处理一个Dialog,我该如何实现透明度呢?
以下是对话框代码:
LayoutInflater inflater = getLayoutInflater();
View dialoglayout = inflater.inflate(R.layout.activity_mine1,
(ViewGroup) findViewById(R.layout.mine1));
mine1 = new AlertDialog.Builder(this);
mine1.setView(dialoglayout);
mine1.show();
我的xml只是一个带有其他子视图的relativeLayout:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#00000000" >
...
</RelativeLayout>
注意:我已经在这里看了一些类似的帖子,但它们似乎没有用。
我的真正原因是我真正想要使用的背景不是矩形。我让它在一项活动中工作。但我想改用对话框。
编辑:
进一步玩,我有style.xml
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="CustomDialog" parent="android:Theme.Holo.Dialog">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
</style>
</resources>
我添加为
new AlertDialog.Builder(this, R.style.CustomDialog)
答案 0 :(得分:8)
<style name="CustomAlertDialog" parent="android:style/Theme.Dialog">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowIsFloating">true</item>
<item name="android:backgroundDimEnabled">true</item>
<item name="android:width">300dip</item>
<item name="android:textColor">#FFFFFF</item>
</style>
Dialog connectionDialog = new Dialog(this, R.style.CustomAlertDialog);
connectionDialog.setContentView(set your view here);
connectionDialog.show();
答案 1 :(得分:5)
使用Dialog而不是AlertDialog.Builder
,因此使用setContentView而不是setView。
答案 2 :(得分:4)
connectionDialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
答案 3 :(得分:0)
看起来它与您的风格中的android:backgroundDimEnabled
和/或android:backgroundDimAmount
相关。请查看此答案以获取更多信息:Translucent Activity filling the entire screen
您可能想尝试将android:backgroundDimEnabled
设置为false。