繁体   English   中英

如何动态更改按钮背景色?

[英]How to dynamically change a pressed button background color?

我正在开发一个问题游戏,我想将答案按钮按下的背景颜色更改为绿色(如果答案正确),或者将红色更改为红色(如果答案错误),就在用户按下按钮的那一刻。

实际上,我有一个custom_button.xml,它分配给布局中的按钮:

        <Button 
        android:id="@+id/la"
        android:width="63dp"
        android:height="65dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/la"
        android:tag="@string/la"
        android:layout_toRightOf="@+id/fa"
        **android:background="@drawable/custom_button"**
        android:layout_margin="3dp"
    />  

有没有一种方法可以在用户按下按钮时立即更改按钮的按下背景?

我尝试在按钮OnClickListener内使用setBackgroundDrawable(),但这会在用户下次单击按钮时更改按钮的行为,而不是实际的。

bt.setBackgroundDrawable(getResources().getDrawable(R.drawable.custom_button_fail));

提前致谢!

我尝试在按钮OnClickListener内使用setBackgroundDrawable(),但这会在用户下次单击按钮时更改按钮的行为,而不是实际的。

这是因为按下按钮后会调用onClick方法。 您最好的选择是:

  1. 为您的按钮创建两个不同的可绘制对象。 第一个是未按下时具有正常背景的正常按钮,按下时则显示绿色背景。 第二个是不按下时具有正常背景的正常按钮,按下时为红色背景。
  2. onCreate上,根据答案是否正确为按钮分配正确的背景。

顺便说一句,有一个较短的方法:

bt.setBackgroundResource(R.drawable.custom_button);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM