android - 具有透明背景的对话框(带有任何颜色)

时间:2016-02-05 16:20:41

标签: android

I want to do following我希望在客户对话框后面显示蓝色半透明。但我没有得到蓝色

以下是对话框声明的代码:

final Dialog dialog = new Dialog(BookAppointmentActivity.this,R.style.TranslucentBlue );
                //Dialog dialog = new Dialog(BookAppointmentActivity.this,  android.R.style.Theme_Translucent_NoTitleBar_Fullscreen );

                dialog.setContentView(R.layout.customedialog);
                Window window = dialog.getWindow();
                window.setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));


                dialog.show(); 

这是我的style.xml

<color name="transparent_green_color">@color/dialog_back</color>
    <style name="TranslucentBlue" parent="android:Theme.Translucent">
        <item name="android:windowBackground">@color/transparent_green_color</item>
    </style>

1 个答案:

答案 0 :(得分:3)

好的,我得到了解决方案

首先在主题中进行更改。 不要以客户为主题。使用android.R.style.Theme_Translucent_NoTitleBar_Fullscreen

final Dialog dialog = new Dialog(BookAppointmentActivity.this, android.R.style.Theme_Translucent_NoTitleBar_Fullscreen);

而不是自定义主题,并添加以下内容:

window.setBackgroundDrawableResource(R.color.dialog_back);

完整代码:

final Dialog dialog = new Dialog(context, android.R.style.Theme_Translucent_NoTitleBar_Fullscreen);

dialog.setContentView(R.layout.customedialog);
Window window = dialog.getWindow();

window.setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));

window.setBackgroundDrawableResource(R.color.dialog_back);
dialog.show();

使用资源文件color.xml中的颜色,最后但并非最不重要的是,不要忘记降低颜色的不透明度。