繁体   English   中英

Android-按下并释放时更改ImageButton的图像

[英]Android - change image of ImageButton when pressed and release

我想为按钮设置image1,但是当按下它时-将其更改为image2。 释放后,按钮应再次为image1。 我试图在onClick()方法中这样做:

  button.setImageResource(R.drawable.image1);
       if(button.isPressed())
            button.setImageResource(R.drawable.image2);

但是在第一次按下按钮的图像后,图像变为了image2并保持不变。
您能帮我解决这个问题吗?

我认为这是您想要的:

MyCustomTouchListener myCustomTouchListener = new MyCustomTouchListener();
button.setOnTouchListener(myCustomTouchListener);

现在,MyCustomTouchListener:

class MyCustomTouchListener implement OnTouchListener {
    public boolean onTouch(View v, MotionEvent event)
    {
        switch(event.getAction()){
            case MotionEvent.ACTION_DOWN:
            // touch down code
            button.setImageResource(R.drawable.image1);
            break;

            case MotionEvent.ACTION_MOVE:
            // touch move code
            break;

            case MotionEvent.ACTION_UP:
            // touch up code
            button.setImageResource(R.drawable.image1);
            break;
        }
        return true;
    }
}

您可以使用状态列表drawable轻松地做到这一点,并且不需要任何额外的Java代码(除非您在运行时创建StateListDrawable ,但这比实现自定义触摸交互更合适)。

使用以下内容:

int dispImg = 0;
button.setImageResource(R.drawable.image1);
if (button.isPress()) {
    if (dispImg == 0) {
        button.setImageResource(R.drawable.image2);
        dispImg = 1;
    }
    else if (dispImg == 1) {
        button.setImageResource(R.drawable.image1);
        dispImg = 0;
    }
}

说明:dispImg跟踪您所显示的图像。 如果为0,则表示正在显示第一个图像,因此,我们应该切换到第二个图像。

希望我有所帮助:D

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM