设置Dialog标题栏的背景颜色?

时间:2010-03-06 07:01:14

标签: android

我正在创建一个派生自Dialog的类。对话框的标题栏看起来非常好,它是深灰色,有点透明。有没有办法设置用于标题栏背景的颜色?灰色很酷,但我想将它设置为一些自定义颜色。我不认为这是可能的,我想我需要提供自己的可伸缩背景对话框资源。是吗?

由于

6 个答案:

答案 0 :(得分:14)

使用以下代码:

final Dialog mailDialog = new Dialog(MainActivity.this);
mailDialog.getWindow().setBackgroundDrawableResource(R.drawable.dialog_box);

在drawable文件夹中创建一个自定义对话框xml,如下所示:

<强> dialog_box.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <corners
        android:bottomLeftRadius="5dp"
        android:bottomRightRadius="5dp"
        android:topLeftRadius="5dp"
        android:topRightRadius="5dp" />

    <gradient
        android:angle="-90"
        android:centerColor="#660D1E4A"
        android:endColor="#66011444"
        android:startColor="#66505E7F"
        android:type="linear"
         />

    <stroke
        android:dashGap="0dp"
        android:dashWidth="0dp"
        android:width="1dp"
        android:color="#ffffffff" />

</shape>

希望这会对你有所帮助。

答案 1 :(得分:2)

您可以使用:

this.getWindow().setBackgroundDrawableResource(R.color.blue);

这将设置整个窗口颜色,包括标题栏。

然后,您可以更改对话框布局的背景颜色,除了标题栏之外的所有内容都可以更改为喜欢的内容,标题栏将保持蓝色。

答案 2 :(得分:1)

最好的方法是使用自定义对话框,然后您可以自定义其外观。

请查看Set AlertBox Title Bar Background Color以及http://developer.android.com/guide/topics/ui/dialogs.html如何解决此问题。

答案 3 :(得分:1)

dialog = new Dialog(this); // your dialog
dialog.getWindow().setTitleColor(R.color.blue_background);

答案 4 :(得分:0)

标题部分的背景颜色可以通过以下方式轻松设置:

int titleLayoutId = dialog.getContext().getResources().
    getIdentifier("topPanel", "id", "android"); 

    LinearLayout layout = (LinearLayout) dialog.findViewById(titleLayoutId);
    if (layout != null) {
        layout.setBackgroundColor(yourColor);
    }

这消除了创建自定义布局的需要。

答案 5 :(得分:0)

dialog.getWindow().setTitleColor(getResources().getColor(R.color.blue));