Frage

Ich versuche, es zu machen, so dass, solange ein Benutzer auf die Schaltfläche berührt, ist es ein Bild zeigt, und wenn der Benutzer die Taste loslässt, es geht zurück auf ein Standard-Bild.

Ich versuche, einen Selektor zu verwenden, um dies zu verwirklichen:

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

Ich habe ein paar Dinge mit dem Wähler versucht, aber es erzeugt immer das gleiche Verhalten: die Taste mit dem Standardbild beginnt, dann drücke ich es und es ändert sich mit dem „record_on“ Bild und es geht nie wieder das Standardbild, wenn ich loslassen.

Gibt es eine Möglichkeit, diese Art von Verhalten mit einem Image zu bekommen, oder soll ich etwas anderes verwenden?

War es hilfreich?

Lösung 2

Es stellt sich heraus, dass ich vorzeitig in meinem OnTouch () Umsetzung des Touch-Ereignis raubend. Wenn ich ein ACTION_UP Ereignis sah, war ich es durch die Rückkehr wahr, raubend und damit die Ausbreitung des Ereignisses gestoppt wurde, bevor die Wähler es. Durch die Rückgabe statt falsch, die Auswahlverhalten Tritte in und die Bild kehrt zum Standard.

Mit anderen Worten, ich bin ein n00b.

Der Grund, warum ich dies zunächst nicht bemerkt, weil das ACTION_DOWN Ereignis schien in Ordnung zu arbeiten, und ich war so gut, dass man raubend. Später entdeckte ich, dass es das ACTION_MOVE Ereignis war, nicht das ACTION_DOWN Ereignis, das verursacht wurde das Bild der Schaltfläche zu ändern, da ich für alle anderen Ereignisse falsch zurückkehrte.

Andere Tipps

Sie könnten für eine Button / ImageButton im Standard-XML-Ressource betrachten möchten, die $ANDROID_HOME/platforms/$PLATFORM/data/res/drawable/btn_default.xml zu sein scheint (wo $ANDROID_HOME ist, wo Sie Ihr SDK installiert und $PLATFORM ist, was API-Version Sie interessiert sind).

Der "normaler" Zustand ist:

<item android:state_enabled="true"
    android:drawable="@drawable/btn_default_normal" />
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top