2010-07-19 44 views
0

J'utilise quelques réglages qui permettent à l'utilisateur de changer l'interface de mon application avec les ressources de sa SDCard. C'est vraiment facile et rien de spécial, j'utilise simplement "setImageDrawable" ou "setImageBitmap".Android: changer la ressource pressée/ciblée par le code

http://developer.android.com/reference/android/widget/ImageButton.html

Ce qui est vraiment cool et tous mes utilisateurs sont heureux de personnaliser l'interface utilisateur.

Mais maintenant, j'aimerais aussi changer la ressource pressée/focalisée du bouton! Maintenant, quand ils cliquent dessus, ils ne voient rien et cliquent peut-être 10 fois. Et plus problématique, ce n'est pas vraiment intuitif.

Donc je voudrais aussi changer l'état pressé/concentré ... programme

suggestion Ani idée?

Répondre

5

Vous devrez faire en sorte que tous vos ImageButtons aient une StateListDrawable au lieu de BitmapDrawables.

ImageButton ib = new ImageButton(this); 
StateListDrawable sl = new StateListDrawable(); 
sl.addState(new int[] { android.R.attr.state_enabled }, yourDefaultDrawableHere); 
sl.addState(new int[] { android.R.attr.state_pressed, android.R.attr.state_selected }, yourImageDrawableHere); 
ib.setImageDrawable(sl);