2010-07-15 7 views
5

J'ai un widget écran d'accueil avec un bouton image. J'ai le bouton qui fonctionne avec une intention en attente, mais je n'arrive pas à comprendre comment changer l'image du bouton quand il est pressé.ImageButton dans le widget écran d'accueil Android

J'ai essayé d'utiliser un sélecteur et cela fonctionne dans mon activité de test de widget, mais pas dans le remoteview. Comment pourrais-je implémenter cette fonctionnalité dans le widget d'écran d'accueil?

+0

Salut Josh, avez-vous finf un moyen pour obtenir rester cet état de la presse? Merci – nirs

Répondre

0

J'ai réussi à le faire fonctionner en déplaçant le sélecteur dans son propre fichier XML et en mettant res/drawable et en référençant ce fichier xml comme ma ressource pour mon imagebutton dans le layout xml de l'application-widget.

buttonimg.xml:

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

widget_layout.xml

<ImageButton 
android:id="@+id/buttonimg" 
android:layout_width="50dp" 
android:layout_height="50dp" 
android:layout_x="0px" 
android:layout_y="2px" 
android:clickable="true" 
android:src="@drawable/button" 
> 

J'ai maintenant un autre problème, cependant. Le sélecteur me permet uniquement de changer l'image surPress. A sa sortie, l'image change retour> :-(

Comment puis-je obtenir l'état de changement d'image sur la presse et rester dans cet état jusqu'à la prochaine presse (comme le ToggleButton)?

+0

c'est ce qu'un sélecteur est censé faire. une fois que vous avez relâché le bouton, vous devez changer l'image programme ... regarde la réponse ci-dessus –

3

Vous pouvez définir une autre image dans votre point de vue à distance.

remoteView.setInt(R.id.buttonimg, "setImageResource", R.drawable.button_on); 
Questions connexes