android OnClickListener para um botão ImageView?
-
12-09-2019 - |
Pergunta
Eu estou tentando usar um ImageView
como um Button
, e eu quero ser capaz de mudar a imagem sempre que o botão é pressionado. Eu tenho um conjunto OnClickListener
, mas o que eu tenho que fazer sobre quando o dedo do utilizador não é mais para baixo, sobre o botão? Como faço para reverter para a imagem original?
Solução
Usuário isso em vez disso:
View.OnTouchListener
abstract boolean onTouch(View v, MotionEvent event)
o parâmetro evento vai deixar você saber se o seu ACTION_DOWN
ou ACTION_UP
Outras dicas
A maneira correta de fazer isso é estender classe Button ou se você só quer mudar a imagem do botão é possível definir um estilo de 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>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow