【问题标题】:Android - change image of ImageButton when pressed and releaseAndroid - 按下并释放时更改 ImageButton 的图像
【发布时间】:2017-01-08 02:59:02
【问题描述】:

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

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

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

【问题讨论】:

    标签: android button onclick pressed


    【解决方案1】:

    我想这就是你想要的:

    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;
        }
    }
    

    【讨论】:

      【解决方案2】:

      您可以使用 state list drawable 轻松完成此操作,并且您不需要额外的 Java 代码(除非您在运行时创建 StateListDrawable,但即使这样也是比实现自定义触摸交互更合适的方法) .

      【讨论】:

        【解决方案3】:

        使用以下内容:

        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时,表示正在显示第1张图片,因此我们应该切换到第2张。

        希望我有所帮助:D

        【讨论】:

          猜你喜欢
          • 2016-11-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多