Domanda

Sto cercando di utilizzare un ImageView come Button, e voglio essere in grado di cambiare l'immagine ogni volta che il pulsante è premuto. Ho un set OnClickListener, ma cosa devo fare circa quando il dito dell'utente non è più in basso, sopra il pulsante? Come faccio a ripristinare l'immagine originale?

È stato utile?

Soluzione

User questo, invece:

View.OnTouchListener
abstract boolean onTouch(View v, MotionEvent event)

il parametro dell'evento ti consente di sapere se il suo ACTION_DOWN o ACTION_UP

Altri suggerimenti

Il modo corretto di fare questo è quello di estendere classe Button o se si desidera solo per cambiare l'immagine del pulsante è possibile impostare uno stile per XML.

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_window_focused="false" android:state_enabled="true"
        android:drawable="@drawable/btn_default_normal" />
    <item android:state_window_focused="false" android:state_enabled="false"
        android:drawable="@drawable/btn_default_normal_disable" />
    <item android:state_pressed="true" 
        android:drawable="@drawable/btn_default_pressed" />
    <item android:state_focused="true" android:state_enabled="true"
        android:drawable="@drawable/btn_default_selected" />
    <item android:state_enabled="true"
        android:drawable="@drawable/btn_default_normal" />
    <item android:state_focused="true"
        android:drawable="@drawable/btn_default_normal_disable_focused" />
    <item
         android:drawable="@drawable/btn_default_normal_disable" />
</selector>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top