首页 > 解决方案 > 如何在按下时更改按钮背景并在停止按下后继续更改?

问题描述

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

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

标签: javaandroidxml

解决方案


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

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

我认为这对你有用。


推荐阅读