Установить цвет фона для панели заголовка диалога?
Я создаю класс, полученный из Dialog. Строка заголовка выглядит очень красиво, темно-серый цвет, который несколько прозрачен. Есть ли способ установить цвет, используемый для фона заголовка? Серый классный, но я хотел бы установить его на какой-то пользовательский цвет. Я не думаю, что это возможно, я думаю, что мне нужно будет предоставить собственный ресурс для растягивающегося фона. Правильно ли это?
Спасибо
Ответы
Ответ 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);
Это установит весь цвет окна, включая заголовок.
Затем вы можете изменить цвет фона для макета диалогового окна, в котором находится все, кроме заголовка, что угодно, и строка заголовка останется синей.
Ответ 3
Лучшим способом является использование настраиваемого диалога, в котором вы можете настроить его внешний вид.
Посмотрите Установить цвет фона заголовка AlertBox и http://developer.android.com/guide/topics/ui/dialogs.html о том, как это сделать.
Ответ 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));