2010-07-15 22 views
5

Ich habe ein Homescreen Widget mit einem ImageButton. Ich habe die Schaltfläche mit einer ausstehenden Absicht arbeiten, aber ich kann nicht herausfinden, wie Sie das Bild der Schaltfläche ändern, wenn es gedrückt wird.ImageButton in Android HomeScreen Widget

Ich habe versucht, mit einem Selektor und es funktioniert in meinem Widget Testaktivität, aber nicht in der Fernansicht.

Wie kann ich diese Funktionalität in das Startbildschirm-Widget implementieren?

+0

Hallo Josh, hat finf Sie einen Weg, diese Presse Zustand bleiben für immer? Dank – nirs

Antwort

0

Ich konnte es erreichen, indem ich den Selektor innerhalb seiner eigenen XML-Datei bewegte und Res/Drawable einfügte und dann diese XML-Datei als meine Ressource für meine Bildschaltfläche im Layout-XML des App-Widgets referenzierte.

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" 
> 

Ich habe jetzt ein anderes Problem, aber. Der Selektor erlaubt mir nur, das Bild auf der Presse zu ändern. Bei der Freigabe ändert sich das Bild zurück> :-(

Wie kann ich die Bildzustandsänderung auf der Presse erhalten und in diesem Zustand bis zum nächsten drücken (wie die ToggleButton) bleiben?

+0

, das ist es, was ein Wähler tun soll., nachdem Sie die Taste losgelassen haben, müssen Sie das Bild programmatisch ändern ... schau dir die obige Antwort an –

3

Sie ein anderes Bild einstellen können innerhalb Ihre Remote-Ansicht.

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