2010-03-06 21 views
17

Estoy creando una clase derivada de Diálogo. La barra de título del diálogo se ve muy bien, es un color gris oscuro que es algo transparente. ¿Hay alguna manera de establecer el color utilizado para el fondo de la barra de título? El gris es genial, pero me gustaría establecerlo en un color personalizado. No creo que esto sea posible, creo que necesitaría proporcionar mi propio recurso de diálogo de fondo extensible. ¿Está bien?¿Establecer el color de fondo para la barra de título del cuadro de diálogo?

Gracias

+0

éste es útil para usted: http://stackoverflow.com/a/15285514/1318946 –

+0

@PratikButani. Creo que pidió antecedentes ... no el texto del título ... – Abhi

Respuesta

1

que puede utilizar:

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

que marcará todo el color de la ventana incluyendo la barra de título.

A continuación, puede cambiar el color de fondo para el diseño del cuadro de diálogo, que es todo menos la barra de título a su gusto y la barra de título permanecerá en azul.

+1

Desafortunadamente Esta respuesta no funcionará, no afecta el cuadro de diálogo. He intentado varias formas diferentes de cambiar el fondo de la barra de título y nada ha funcionado. Cualquier otra sugerencia. –

+0

Esto bloquea la aplicación – Pam

13

usar el siguiente código:

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

y crear un cuadro de diálogo personalizado en la carpeta xml estirable de la siguiente manera:

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> 

la esperanza que esto le ayuda.

+0

Esto cambia todo el color del diálogo. –

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

Eche un vistazo dentro de Window.java: '@Deprecated public abstract void setTitleColor (int textColor);' – StAlex

0

El color de fondo de la sección del título se puede ajustar fácilmente de esta manera:

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

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

Esto elimina la necesidad de crear un diseño personalizado.

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