2014-03-27 204 views
11

我正在嘗試更改按鈕內文本的顏色。Android:點擊更改字體顏色

因此,例如我有一個充滿白色和文本是藍色的按鈕。當我點擊按鈕時,我希望這兩種顏色交換(按鈕內部的文本變成白色,按鈕藍色)。

我已經試過這樣的事情:

<item style="@style/ButtonText_Menue_Clicked" android:drawable="@drawable/button_menue_default" android:state_focused="true"></item> 
<item style="@style/ButtonText_Menue" android:drawable="@drawable/button_menue_default" ></item> 

但它實際上什麼也不做。 有沒有辦法做我想做的事,或者我必須在onclik事件中做一些事情(但是當「點擊消失」時如何設置顏色的問題)

+0

據我知道你需要做的的onClick。很簡單的代碼。 – zgc7009

+0

以及如何將其更改回來? – user3466562

+0

並且您還有問題,即在您完成點擊後文本會發生變化。但我想在按鈕文字改變之前,我發佈按鈕(和onclick後調用釋放按鈕) – user3466562

回答

56

創建一個selector資源在res/color文本顏色和按鈕selectorres/drawable如下...

text_color.xml

<selector 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:state_pressed="true" 
     android:color="#800000" /> 
    <item 
     android:state_pressed="false" 
     android:color="#4C5" /> 
</selector> 

button_color.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector 
xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:state_pressed="true"> 
     <shape android:shape="rectangle"> 
      <solid android:color="#4C5"/> 
     </shape> 
    </item> 
    <item 
     android:state_pressed="false"> 
     <shape android:shape="rectangle" > 
      <solid android:color="#800000"/> 
     </shape> 
    </item> 
</selector> 

添加按鈕佈局

<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Button" 
    android:textColor="@color/text_color" 
    android:background="@drawable/button_color"/> 
+0

太棒了,那正是我一直在尋找的東西,謝謝 – user3466562

+1

text_color.xml是一個[顏色狀態列表資源](http://developer.android.com/guide/topics/resources/color-list-resource.html),所以我覺得把它放在一個'color'目錄比'drawable'更好,因爲設置一個可繪製的'textColor'令人困惑。 – Yon