在android中触摸按钮效果

时间:2016-06-12 17:32:22

标签: android button touch effect

我的项目上有一个按钮,触摸事件的效果消失了。我希望当有人触摸该按钮时它应该改变。但是没有任何东西可以从XML中工作。这是我的代码如下。 java代码。

btnOn.setOnTouchListener(new View.OnTouchListener() {

    //@Override
    public boolean onTouch(View v, MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_DOWN) {
            mConnectedThread.write("A");
            Toast.makeText(getBaseContext(), "LED ON NOW", Toast.LENGTH_SHORT).show();
            return true;
        }
        if (event.getAction() == MotionEvent.ACTION_UP) {
            mConnectedThread.write("C");
            Toast.makeText(getBaseContext(), "LED SWITCHED OFF", Toast.LENGTH_SHORT).show();
            return true;
        }
        return false;
    }
});

这是下面的XML代码。

<Button
    android:id="@+id/buttonOn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="LED ON/OFF"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="148dp"/>

1 个答案:

答案 0 :(得分:0)

我找到了一个java代码,但没有得到任何可用的XML代码。这是java代码。

public boolean onTouch(View v, MotionEvent event) {
            if (event.getAction() == MotionEvent.ACTION_DOWN) {
                mConnectedThread.write("A");
                v.getBackground().setColorFilter(0xe0f47521, PorterDuff.Mode.SRC_ATOP);
                v.invalidate();
                Toast.makeText(getBaseContext(), "LED ON NOW", Toast.LENGTH_SHORT).show();
                return true;
            }
            if (event.getAction() == MotionEvent.ACTION_UP) {
                mConnectedThread.write("C");
                Toast.makeText(getBaseContext(), "LED SWITCHED OFF", Toast.LENGTH_SHORT).show();
                v.getBackground().clearColorFilter();
                v.invalidate();
                return true;
            }
            return false;
        }
    });