2011-11-16 50 views
18

我在我的android应用上有一些Buttons。他们有一个图标和文字。我可以在java代码中设置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)); } 
+0

http://stackoverflow.com/questions/4755871/how-to-set-image-button-backgroundimage-for-different-state/4755934#4755934 – ingsaurabh

回答

39

在抽拉夹

<?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> 

使用这样的按钮图像与mybutton.xml创建XML文件,并在按钮XML代码中使用此

android:background="@drawable/mybutton" 

在res中添加这些颜色代码乌尔斯河 - >数值 - > colors.xml这样

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

参考:Change button background on touch

+0

感谢您的回答,但我没有使用按钮图像。我想设置按钮的背景颜色,当它按下 – realuser

+0

我们可以改变按钮的颜色,使用此... –

+0

非常感谢PolamReddyRajaReddy – realuser

2

使用StateList。下面是一个选择的具有不同可绘制为按下状态一个例子:

<?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> 
5

下面被用于按钮颜色状态列表的示例代码

<?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

+2

tag requires定义可绘制的'drawable'属性或子标签 –

+0

@IgorGanapolsky这是一个颜色选择器,不是可绘制的 - 它在res/color中出现 – Tom

-3

如果要更改按钮的背景颜色,然后只是做如下..

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

      } 

刚将此代码添加到按钮的onclick事件中。

0

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转到这个网站,并选择你的颜色和imort到您的绘制。转到布局xml并设置按钮背景。 android:background =“@ drawable/edittext_modified_states”

相关问题