2010-01-07 6 views
4

Comment changer la couleur de la fenêtre de cette boîte de dialogue? J'ai essayé beaucoup de choses et rien ne fonctionne.Changer la couleur de la fenêtre

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="CustomDialogTheme" parent="@android:style/Theme.Dialog">    
    <item name="android:windowNoTitle">true</item> 
    </style> 
</resources> 
+0

Volovoy @ Alex: Je veux juste mettre la frontière de la fenêtre de dialogue à une couleur différente. Il n'y a pas d'attribut pour ça? Tels que, Android: frameColor ou quoi que ce soit? Ce serait trop facile bien sûr. :) – cakeforcerberus

+0

Jetez également un coup d'oeil à ceci (concernant des images de "neuf-pièce rapportée"): http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch –

Répondre

11

Vous voulez dire cadre blanc? Je pense que c'est une partie de 9-patch drawable, vous pouvez rechercher comment Theme.Dialog est construit dans le SDK_FOLDER \ platform \ android-sdkversion \ data \ res \ valeurs puis styles.xml et themes.xml

Comme J'ai dit, le cadre blanc fait partie de l'image de fond. its panel_background.9.png Donc, si vous voulez changer de cadre - vous aurez besoin d'une image de fond différente + besoin d'écraser dans le style de réglage.

<item name="android:windowBackground">@android:drawable/panel_background</item> 

et vous aurez besoin de définir un style qui sera dérivé de Theme.Dialog et cette

<item name="android:windowBackground">@drawable/your_drawable</item> 

donc si vous mettez en styles.xml quelque chose comme

<style name="NewBorderDialogTheme" parent="android:Theme.Dialog"> 
<item name="android:windowBackground">@drawable/your_drawable</item> 
</style> 

Mettez nouveau dessinable et définissez votre activité sur le nouveau thème - vous devriez voir votre nouvelle frontière

+0

A obtenu. Merci. – cakeforcerberus

+0

Cela ne fonctionne pas pour moi, il affiche simplement l'image derrière la boîte de dialogue non tempérée. Qu'est-ce que je rate? –

+0

http://stackoverflow.com/questions/3310412/progressdialog-nesting-inside-of-another-blank-dialog –

0

Si vous voulez faites-le Programatically, essayez ci-dessous le code:

Qu'est-ce que vous avez à faire:

Lorsque AlertDialog est visible sur votre écran, OnShowListener est appelé. Ainsi, en ajoutant dialog.setOnShowListener(this) vous pourrez personnaliser votre AlertDialog.

code:

// Create AlertDialog 
AlertDialog.Builder adb = new AlertDialog.Builder(context1); 
    adb.setTitle(context1.getString(R.string.app_name)) 
    .setMessage(message) 
    .setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 

     } 
}); 
AlertDialog dialog = adb.create(); 

// Make some UI changes for AlertDialog 
dialog.setOnShowListener(new DialogInterface.OnShowListener() { 
    @Override 
    public void onShow(final DialogInterface dialog) { 

     // Add or create your own background drawable for AlertDialog window 
     Window view = ((AlertDialog)dialog).getWindow(); 
     view.setBackgroundDrawableResource(R.drawable.your_drawable); 

     // Customize POSITIVE, NEGATIVE and NEUTRAL buttons. 
     Button positiveButton = ((AlertDialog)dialog).getButton(DialogInterface.BUTTON_POSITIVE); 
     positiveButton.setTextColor(context1.getResources().getColor(R.color.primaryColor)); 
     positiveButton.setTypeface(Typeface.DEFAULT_BOLD); 
     positiveButton.invalidate(); 

     Button negativeButton = ((AlertDialog)dialog).getButton(DialogInterface.BUTTON_NEGATIVE); 
     negativeButton.setTextColor(context1.getResources().getColor(R.color.primaryColor)); 
     negativeButton.setTypeface(Typeface.DEFAULT_BOLD); 
     negativeButton.invalidate(); 

     Button neutralButton = ((AlertDialog)dialog).getButton(DialogInterface.BUTTON_NEUTRAL); 
     neutralButton.setTextColor(context1.getResources().getColor(R.color.primaryColor)); 
     neutralButton.setTypeface(Typeface.DEFAULT_BOLD); 
     neutralButton.invalidate(); 
    } 
}); 
Questions connexes