我想创建一个事件来改变我的图像按钮的样子,但只有当它被按下时才会改变。到目前为止,我一直在使用onTouch监听器,但这只会永久地改变它。我找不到像按钮那样的onKyeUpListener()类型的东西。
这样的事情是否存在?
解决
final ImageButton button = (ImageButton) findViewById(R.id.ImageButton01);
button.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == (MotionEvent.ACTION_UP)){
//Do whatever you want after press
}
else{
//Do whatever you want during press
}
return true;
}
});
答案 0 :(得分:5)
它在docs。您可以通过XML为不同的状态定义不同的图像。
答案 1 :(得分:3)
不是手动操作,为什么不更改按钮的drawable?通常,drawable可以有多个状态,因此如果您更改某些状态(如聚焦或选定状态)的drawable,操作系统将自动为您处理所有状态。
答案 2 :(得分:2)
来自http://developer.android.com/guide/topics/ui/ui-events.html:
onTouch()...当用户执行限定为触摸事件的操作时调用此方法,包括按下,释放或屏幕上的任何移动手势(在项目的范围内)。
换句话说,还会为发布事件调用onTouch
。看看MotionEvent.getAction()
。