在我们使用onClickListener()
和OnClick()
捕获点击时,是否可以捕获按钮的发布?
我希望在按下按钮时增加按钮的大小,并在释放按钮时将其移回原始大小。任何人都可以帮我解决这个问题吗?
答案 0 :(得分:49)
您应该在按钮上设置OnTouchListener。
button.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_DOWN) {
increaseSize();
} else if (event.getAction() == MotionEvent.ACTION_UP) {
resetSize();
}
}
};
答案 1 :(得分:3)
您还必须处理MotionEvent.ACTION_CANCEL。所以代码将是:
button.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP ||
event.getAction() == MotionEvent.ACTION_CANCEL) {
increaseSize();
} else if (event.getAction() == MotionEvent.ACTION_UP) {
resetSize();
}
}
};
答案 2 :(得分:2)
改为使用OnTouchListener或OnKeyListener。
答案 3 :(得分:1)
您可以通过覆盖onKeyDown
和onKeyUp
来完成此操作。这些都是从android.widget.TextView
继承而来的。有关(稍微)更多信息,请参阅android.widget.Button
doc。
答案 4 :(得分:0)
event.getAction() == MotionEvent.ACTION_UP
从来没有为我执行过。相反,我确实实现了
button.setOnClickListener(new OnClickListener() {
@Override
public boolean onClick(View v) {
resetSize();
}
};
触摸ACTION_UP。