我正在制作一个应用程序,我想使用自定义按钮皮肤。按下按钮时我用于更改背景的代码如下:
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。