如何在Android中以编程方式为Dialog设置Dim Background的颜色

时间:2017-06-29 06:15:29

标签: android dialog android-theme

我想将Dim Background更改为蓝色或红色,我看过的每个例子都使用过一个XML文件,但有没有办法通过传入Color String来设置?

谢谢

3 个答案:

答案 0 :(得分:2)

没有直接的解决方法,但这可能对您有所帮助

自定义对话框主题如下:

<强> styles.xml

<style name="CustomDialogTheme" parent="android:Theme.Dialog">
 <item name="android:windowNoTitle">true</item>
 <item name="android:windowIsFloating">false</item>
    <item name="android:windowBackground">@android:color/transparent</item>
</style>

windowNoTitle用于摆脱标题栏。 window backgroud设置为透明windowIsFloating为false,将对话框视图扩展为全屏。

自定义Dialog.java

public CustomDialog(Context context) {
    super(context, R.style.CustomDialogTheme);
    setContentView(R.layout.custom_dialog);
}

<强> custom_dialog.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/dim_dialog_bg_color">

    <RelativeLayout
        android:id="@+id/dialog_root"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_marginLeft="50dp"
        android:layout_marginRight="50dp"
        android:background="@drawable/dialog_bg_color"
        android:padding="16dp">

</RelativeLayout>

答案 1 :(得分:0)

更改对话框的样式并使用它

 <style name="DialogTheme" parent="Theme.AppCompat.Light.Dialog">
    <!-- Customize your theme here. -->
    <item name="android:windowBackground">@color/red</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:clipToPadding">false</item>
    <item name="android:windowFrame">@null</item>
    <item name="android:textColorPrimary">@color/red</item>
 </style>

答案 2 :(得分:0)

试试这个: 你可以将颜色代码传递给ColorDrawable。

getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));