Je voudrais changer la couleur de fond de mon ImageButton sur l'événement pressé.Android définir bouton de couleur de fond pressé
Voici ce que je suis fait:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<solid android:color="@color/rose_normal" />
<solid
android:state_pressed="true"
android:color="@color/rose_fonce" />
<stroke
android:width="1sp"
android:color="@color/rose_fonce" />
</shape>
Mon bouton est bien en couleur « rose_normal », mais jamais en couleur « rose_fonce » sur la presse.
Où est le problème?
EDIT: Problem solved:
Créer un fichier xml appelé background_rounded_button.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/rounded_button_rose_fonce" android:state_selected="true"></item>
<item android:drawable="@drawable/rounded_button_rose_fonce" android:state_pressed="true"></item>
<item android:drawable="@drawable/rounded_button_rose_normal"></item>
</selector>
rounded_button_rose_fonce.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<solid android:color="@color/rose_fonce" />
<stroke
android:width="1sp"
android:color="@color/rose_fonce" />
</shape>
rounded_button_rose_normal.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<solid android:color="@color/rose_normal" />
<stroke
android:width="1sp"
android:color="@color/rose_fonce" />
</shape>
Et enfin, appliquer arrière-plan pour le bouton:
<ImageButton
android:id="@+id/all_annonce_button_search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_marginBottom="10dp"
android:layout_marginRight="10dp"
android:background="@drawable/background_rounded_button.xml"
android:padding="16dp"
android:src="@drawable/ic_action_search" />
Merci, ça fonctionne très bien mais j'ai perdu la forme ovale de mon bouton. Comment puis-je rajouter cet ovale? – wawanopoulos
@ wawanopoulos, Essayez de définir votre image personnalisée deux ovales au lieu de la couleur. –
Ok, merci ça marche! Je vais mettre à jour mon message – wawanopoulos