我的项目上有一个按钮,触摸事件的效果消失了。我希望当有人触摸该按钮时它应该改变。但是没有任何东西可以从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"/>
答案 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;
}
});