gpt4 book ai didi

android - android 选择器的按下状态不起作用

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:36:49 25 4
gpt4 key购买 nike

我制作了 android 和 arduino 应用程序来控制我的站立式办公 table 。我把这个项目上传到github( https://github.com/neosarchizo/MyStandingDesk )

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/down_button_pressed" android:state_pressed="true" />
<item android:drawable="@drawable/down_button" />
</selector>

我想在 MainActivity 中为按钮使用选择器。如果我按下某个按钮,则必须更改按钮的图像。但它没有用。因此,我通过检查 MotionEvent 以编程方式更改按钮的图像。

btnDown.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {

switch (motionEvent.getAction()) {
case MotionEvent.ACTION_DOWN:
btnDown.setImageResource(R.drawable.down_button_pressed);
sendCommand("a");
break;
case MotionEvent.ACTION_UP:
btnDown.setImageResource(R.drawable.down_button);
sendCommand("s");
break;
}
return true;
}
});

我还在布局 xml 文件中为选择器编写了以下代码。

<ImageButton
android:id="@+id/btnDown"
android:layout_width="fill_parent"
android:layout_height="0px"
android:layout_margin="30dip"
android:layout_weight="1"
android:scaleType="fitCenter"
android:background="@android:color/transparent"
android:src="@drawable/selector_down_button" />

最佳答案

改变这个

android:src="@drawable/selector_down_button"

android:background="@drawable/selector_down_button"

您可能希望在收到 ACTION_DOWN 事件时启用按下状态,并在收到 ACTION_UP 事件时禁用它。

  btnDown.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {

switch (motionEvent.getAction()) {
case MotionEvent.ACTION_DOWN:
btnDown.setImageResource(R.drawable.down_button_pressed);
sendCommand("a");
view.setPressed(true);
break;
case MotionEvent.ACTION_UP:
btnDown.setImageResource(R.drawable.down_button);
sendCommand("s");
view.setPressed(false);
break;
}
return true;
}
});

关于android - android 选择器的按下状态不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30365122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com