2011-11-16 54 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」

相關問題