2010-03-06 11 views
17

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

Благодаря

+0

это один полезно вам: http://stackoverflow.com/a/15285514/1318946 –

+0

@PratikButani. Я думаю, что он попросил фон ... не в тексте цвета названия. – Abhi

ответ

1

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

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

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

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

+1

К сожалению, этот ответ не будет работать, он не влияет на диалоговое окно. Я попробовал несколько разных способов изменить фон заголовка, и ничего не сработало. Любые другие предложения. – 2011-03-06 14:26:32

+0

Это приводит к сбою приложения – Pam

13

Используйте следующий код:

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> 

Надеется, что это помогает.

+0

Изменяет весь цвет диалогового окна. –

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

Взгляните внутрь Window.java: '@Deprecated public abstract void setTitleColor (int textColor);' – StAlex

0

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

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

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

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

0
dialog.getWindow().setTitleColor(getResources().getColor(R.color.blue)); 
Смежные вопросы