2010-09-08 6 views
0

J'essaye de faire un bouton personnalisé, ayant deux fichiers 9patch, un pour l'état normal et un pour l'état.Le bouton personnalisé a le texte manquant

D'abord j'ai essayé avec un simple fond 9patch et le résultat est très bien:

<Button android:id="@+id/btnTest" 
     android:layout_height="80dip" 
     android:layout_width="135dip" 
     android:text="Test" 
     android:drawableTop="@drawable/imgsomeimage" 
     android:background="@drawable/main_button_background"> 
</Button> 

je reçois un bouton avec une image et un texte ci-dessous il. Tout le main_button_background sous

Je crée un nouveau fichier XML (main_menu_button.xml) avec le contenu suivant

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item 
     android:state_focused="false" 
     android:state_selected="false" 
     android:state_pressed="false" 
     android:drawable="@drawable/main_button_background" /> 
    <item 
     android:state_focused="false" 
     android:state_selected="true" 
     android:state_pressed="false" 
     android:drawable="@drawable/main_button_background" /> 

    <!-- Focused states --> 
    <item 
     android:state_focused="true" 
     android:state_selected="false" 
     android:state_pressed="false" 
     android:drawable="@drawable/main_button_background_pressed" /> 
    <item 
     android:state_focused="true" 
     android:state_selected="true" 
     android:state_pressed="false" 
     android:drawable="@drawable/main_button_background_pressed" /> 

    <!-- Pressed --> 
    <item 
     android:state_pressed="true" 
     android:drawable="@drawable/main_button_background_pressed" /> 
    </selector>  

Le bouton devient:

<Button android:id="@+id/btnTest" 
     android:layout_height="80dip" 
     android:layout_width="135dip" 
     android:text="Test" 
     android:drawableTop="@drawable/imgsomeimage" 
     android:background="@drawable/main_menu_button"> 

Maintenant, le texte ISN n'est pas affiché, seulement l'arrière-plan et l'imgsomeimage. Qu'est-ce que je fais de mal?

Répondre

0

Problème résolu. L'image de fond pressée avait une taille différente. Après le redimensionner comme arrière-plan normal tout fonctionne bien.

+0

Mes 9 patches ont tous les deux les mêmes dimensions et mon texte disparaît lorsque je sélectionne (et invoque l'autre état) :(. –

Questions connexes