Я пытаюсь использовать ImageView в качестве Button, и я хочу иметь возможность изменять изображение при каждом нажатии кнопки. У меня есть набор OnClickListener, но что мне делать, когда палец пользователя больше не опущен над кнопкой? Как мне вернуться к исходному изображению?
ImageView
Button
OnClickListener
Правильный способ сделать это - расширить класс Button или, если вы хотите изменить только изображение кнопки, вы можете установить стиль с помощью 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>
Пользователь вместо этого:
View.OnTouchListener abstract boolean onTouch(View v, MotionEvent event)
параметр события сообщит вам, если ACTION_DOWN или ACTION_UP
ACTION_DOWN
ACTION_UP