2010-03-06 16 views
17

Sto creando una classe derivata da Dialog. La barra del titolo della finestra di dialogo sembra davvero bella, è un colore grigio scuro che è piuttosto trasparente. C'è un modo per impostare il colore utilizzato per lo sfondo della barra del titolo? Il grigio è bello, ma mi piacerebbe impostarlo su un colore personalizzato. Non penso che sia possibile, penso che avrei bisogno di fornire la mia risorsa di dialogo di sfondo estensibile. È giusto?Impostare il colore di sfondo per la barra del titolo della finestra di dialogo?

Grazie

+0

questo è utile per voi: http://stackoverflow.com/a/15285514/1318946 –

+0

@PratikButani. Penso che abbia chiesto il background ... non il textcolor del titolo .. – Abhi

risposta

1

È possibile utilizzare:

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

che imposterà l'intero colore della finestra compresa la barra del titolo.

È quindi possibile modificare il colore di sfondo per il layout della finestra di dialogo che è tutto tranne la barra del titolo per qualsiasi cosa si desideri e la barra del titolo rimarrà blu.

+1

Purtroppo questa risposta non funzionerà, non ha alcun effetto sulla finestra di dialogo. Ho provato diversi modi di modificare lo sfondo della barra del titolo e nulla ha funzionato. Qualsiasi altro suggerimento. –

+0

Arresta in modo anomalo l'app – Pam

13

Utilizzare il codice qui sotto:

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

e creare una finestra di dialogo XML personalizzato nella cartella drawable come di seguito:

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> 

Spero che questo ti aiuta.

+0

Cambia l'intero colore della finestra di dialogo. –

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

Dai uno sguardo all'interno di Window.java: '@Deprecated public abstract void setTitleColor (int textColor);' – StAlex

0

Il colore della sezione titolo sfondo può essere facilmente impostato in questo modo:

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

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

Questo elimina la necessità di creare un layout personalizzato.

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