Я делаю приложение, и я хочу использовать пользовательские кнопки. Код я использую для изменения фона при нажатии кнопки следующая:Использование правильного MotionEvent для пользовательских кнопок
button3.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_DOWN) {
button3.setBackgroundResource(R.drawable.blue_buttonn);
} else if (event.getAction() == MotionEvent.ACTION_UP) {
button3.setBackgroundResource(R.drawable.black_buttonn);
}else if (event.getAction() == MotionEvent.ACTION_HOVER_MOVE) {
button3.setBackgroundResource(R.drawable.black_buttonn);
}
return false;
}
});
Этот код должен сделать синюю кнопку, когда его нажат и вернуть его к черному при отпускании. Он работает, но если вы нажмете на кнопку и уйдете от нее, событие ACTION_UP не будет запущено. Какое событие я должен использовать в этом случае?
Я отредактировал мой код, добавив событие HOVER_MOVE, которое работает, когда вы выталкиваете палец из кнопки. Но поскольку эти кнопки находятся внутри элемента пользовательского списка, если вы перемещаете палец за пределами текущего элемента, событие HOVER_MOVE не запускается.
это работает. Есть ли способ сделать это в java-коде? – mremremre1