8
votes

Comment changer la couleur du bouton de couleur lorsque vous appuyez sur Android?

J'ai des boutons que j'ai définis la couleur de fond comme rouge, vert et bleu séparément. Lorsque j'appuie sur le bouton, cliquez sur l'événement généré, mais il n'y a pas de changement d'interface graphique pour que l'utilisateur connaisse le bouton est enfoncé. Bouton Android Changement de couleur grisâtre de l'arrière-plan en orange et revenez à la couleur grisâtre après avoir relâché l'état pressé. Comment implémenter cela sur le bouton coloré?


0 commentaires

3 Réponses :


26
votes

qui est implémenté via un statelistDrawable , représenté par sélecteur dans xml . Référence: http://developer.android.com/Guide/topics /resources/drawable-resource.html#statelist

Voici un exemple de A Diable qui sera blanc par défaut , noir quand pressé : xxx


0 commentaires

2
votes

Essayez de cette façon:

<?xml version="1.0" encoding="utf-8"?>   
<selector xmlns:android="http://schemas.android.com/apk/res/android" >   
    <item android:state_pressed="true" >
        <shape>
            <solid
                android:color="#1E669B" />
            <stroke
                android:width="2dp"
                android:color="#1B5E91" />
            <corners
                android:radius="6dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />            
        </shape>
    </item>
    <item>
        <shape>
            <gradient
                android:startColor="#1E669B"
                android:endColor="#1E669B"
                android:angle="270" />
            <stroke
                android:width="4dp"
                android:color="#1B5E91" />
            <corners
                android:radius="7dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>
</selector>


0 commentaires

8
votes

Comme mentionné par K-Ballo, vous pouvez utiliser STATelistDrawable pour implémenter une vue avec divers graphismes différents en fonction de l'état. Dans votre case de cas, vous trouverez la vue où deux états sont enfoncés et appuyez sur la touche non enfoncée.

Nous devons créer un fichier BOutSelector.xml dans le dossier digue P>

Button customButton = (Button) findViewById(R.id.customButton);
customButton.setBackground(getResources().getDrawable(R.drawable.buttonselector));


1 commentaires

Réponse beaucoup plus complète!