如何在按下按钮时更改按钮背景,并在我停止按下按钮后继续更改?

时间:2018-08-10 11:57:27

标签: java android xml

我有这段代码,当我按下按钮时背景会发生变化,但是当我停止按下按钮时,会返回到第一个背景。

next

3 个答案:

答案 0 :(得分:0)

为特定按钮实施onClick()函数

在布局文件中,

<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Click ME!"/>

在活动中,

Button button = findViewById(R.id.button);

    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            v.setBackgroundColor(Color.RED);
        }
    });

我猜这对您有帮助。

答案 1 :(得分:0)

您应该添加:

android:state_selected =“ true”

您的可绘制对象将如下所示:

<item android:drawable="@drawable/botonverdeencendido" android:state_selected="true" />
<item android:drawable="@drawable/botonverdeencendido" android:state_pressed="true" />
<item android:drawable="@drawable/botonverdeapagado" />

答案 2 :(得分:0)

要在按下按钮时更改按钮的背景色,可以这样做,

btn.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            //Button pressed color
            if (event.getAction() == MotionEvent.ACTION_DOWN) {
                btn.setBackgroundColor(getResources().getColor(R.color.colorPrimary));
            }

            // Button pressed stopped
            if (event.getAction() == MotionEvent.ACTION_UP || event.getAction() == MotionEvent.ACTION_CANCEL) {
                btn.setBackgroundColor(getResources().getColor(R.color.colorAccent));
            }
            return false;
        }
    });

我认为这对您有用。