Подтвердить что ты не робот

Установить цвет фона для панели заголовка диалога?

Я создаю класс, полученный из Dialog. Строка заголовка выглядит очень красиво, темно-серый цвет, который несколько прозрачен. Есть ли способ установить цвет, используемый для фона заголовка? Серый классный, но я хотел бы установить его на какой-то пользовательский цвет. Я не думаю, что это возможно, я думаю, что мне нужно будет предоставить собственный ресурс для растягивающегося фона. Правильно ли это?

Спасибо

4b9b3361

Ответ 1

Используйте приведенный ниже код:

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

И создайте настраиваемое диалоговое окно 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>

Надеюсь, это поможет вам.

Ответ 2

Вы можете использовать:

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

Это установит весь цвет окна, включая заголовок.

Затем вы можете изменить цвет фона для макета диалогового окна, в котором находится все, кроме заголовка, что угодно, и строка заголовка останется синей.

Ответ 4

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

Ответ 5

Цвет фона в разделе заголовка можно легко установить таким образом:

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

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

Это устраняет необходимость создания настраиваемого макета.

Ответ 6

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