如何为button的按下状态设置不同的颜色?

我在我的android应用程序上有一些Buttons 。 他们有一个图标和文字。 我可以在java代码中设置Button的背景颜色。 如果button被点击,我想用不同的颜色显示。 那么,如何为Button的按下状态设置不同的颜色?

 <Button android:id="@+id/save" android:layout_width="130dip" android:layout_height="wrap_content" android:scaleType="center" android:drawableTop="@drawable/save" android:text="Save" android:textColor="#FFFFFF" android:textSize="14dip" > 

onCreate方法:

 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.homescreen); save = (Button)findViewById(R.id.save); save.setBackgroundColor(Color.rgb(27,161,226)); } 

Solutions Collecting From Web of "如何为button的按下状态设置不同的颜色?"

用drawable文件夹中的mybutton.xml像这样使用button图像创buildxml文件

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

并使用这个button的XML代码

 android:background="@drawable/mybutton" 

像这样在资源 – > values – > colors.xml中添加这些颜色代码

 <?xml version="1.0" encoding="utf-8"?> <resources> <color name="blue">#0066cc</color> <color name="gold">#e6b121</color> </resources> 

参考: 触摸改变button背景

以下是用于button的颜色状态列表的示例代码

 <?xml version="1.0" encoding="UTF-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:color="#c0c0c0" android:state_selected="true"/> <item android:color="#ffffff" android:state_pressed="true"/> <item android:color="#9A9A9A" android:state_focused="false" android:state_pressed="false" android:state_selected="false"/> </selector> 

也请查看下面的链接颜色状态列表

http://developer.android.com/guide/topics/resources/color-list-resource.html

使用一个StateList 。 下面是一个用于按下状态的不同drawable的select器的例子:

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

edittext_modified_states.xml

 <?xml version="1.0" encoding="UTF-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_focused="true" android:state_pressed="false" android:drawable="@drawable/apptheme_textfield_activated_holo_light" /> <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/apptheme_textfield_focused_holo_light" /> <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/apptheme_textfield_disabled_focused_holo_light"/> <item android:drawable="@drawable/apptheme_textfield_default_holo_light" /> </selector> 

在这里: http : //android-holo-colors.com转到这个网站,select你的颜色和imort到你的drawable。 转到布局xml和设置button背景。 机器人:背景= “@绘制/ edittext_modified_states”

如果你想改变button的背景颜色,那么就按照下面的方法做。

 @Override public void onClick(View v) { if(v.getId() == R.id.btn01) { btn1.setBackgroundColor(Color.RED); btn1.setTextColor(Color.WHITE); } 

只需在button的onclick事件中添加此代码即可。