如何动态更改按下按钮的背景颜色?
问题描述:
我正在开发一个问题游戏,如果答案正确,我想将答案按钮的背景颜色更改为绿色;如果答案错误,只是在用户按下按钮的时候,我会将其更改为红色。如何动态更改按下按钮的背景颜色?
其实我有我分配到的按钮布局中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));
在此先感谢!
答
我尝试使用setBackgroundDrawable()OnClickListener但这种改变按钮的行为下一次用户点击按钮,而不是实际的按钮内。
这是因为在按下按钮后,onClick
方法被调用。这里最好的选择是:
- 为您的按钮创建两个不同的drawable。第一个是正常的按钮,当它没有按下时为正常背景,按下时为绿色背景。第二个用于没有按下时具有正常背景的正常按钮,当按下时为红色背景。
- On
onCreate
根据答案是否正确,为按钮分配正确的背景。
顺便说一句,有一个较短的方式这样做:
bt.setBackgroundResource(R.drawable.custom_button);
+1,感谢名单了很多crisitian,你在我心中的SetBackgroundResource方法制成的光,我是不知道有关相同。感谢名单 – 2011-02-28 06:47:01