如何仅在我的手指触摸时才设置ImageButton

时间:2010-10-26 22:43:07

标签: android image onclick imagebutton

我想创建一个事件来改变我的图像按钮的样子,但只有当它被按下时才会改变。到目前为止,我一直在使用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;
        }
    });

3 个答案:

答案 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()