2013-06-19 36 views
5

我試圖將我應用程序中按鈕的所有TextColor更改爲白色,並且試圖使其變爲粗體。但是,這並沒有發生,我覆蓋the android:Widget.Button 我正在開發果凍豆4.1.2 我做錯了什麼?在清單在整個應用程序中更改按鈕樣式

android:theme="@style/spui" > 

,我喜歡

<style name="spui" parent="android:Theme.Holo.Light.DarkActionBar"> 
    <item name="android:buttonStyle">@style/Buttonspui</item> 
</style> 

的按鈕本身

<style name="Buttonspui" parent="android:Widget.Button"> 
     <item name="android:background">@drawable/btn_default_holo_light</item> 
     <item name="android:minHeight">48dip</item> 
     <item name="android:minWidth">64dip</item> 
     <item name="android:textColor">#ffffff</item> 
     <item name="android:textStyle">bold</item> 
    </style> 
風格的主題

主題定義210

按鈕

<Button 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="15dp" 
    android:text="@string/edit" 
    android:id="@+id/btnEdit" 
    style="@style/Buttonspui"/> 
+0

嘗試這種風格適用於每一個按鈕。那可行。 – SKK

+0

如果您在應用程序中應用此主題,請確保您未針對該活動或按鈕本身應用其他主題。 –

+0

按鈕本身沒有另一種風格 – mXX

回答

15

對於造型你Button您可以使用此:

轉到drawable文件夾,並以XML(可如button.xml)所謂的「風格」的文件,該文件包含以下內容:

<?xml version="1.0" encoding="utf-8"?> 

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item> 
     <shape> 
      <gradient android:startColor="#449def" android:endColor="#2f6699" android:angle="270" /> 
      <stroke android:width="1px"   android:color="#000000" /> 
       <corners android:bottomLeftRadius="0dp" 
       android:bottomRightRadius="0dp" 
       android:topLeftRadius="8dp" 
       android:topRightRadius="8dp"/>  
       <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> 
     </shape> 
    </item> 

</selector> 

這是我的代碼,你可以進行必要的修改,你要

現在把它在你的佈局XML(mainactivity.xml)這樣

android:background="@drawable/button.xml" 

我們改變字體顏色和樣式,你可以用它來作爲值文件夾中的styles.xml一部分的以下

<style name="buttonStyle" parent="@android:style/Widget.Button.Small"> 
    <item name="android:textColor">#FFFFFF</item> 
    <item name="android:textSize">12sp</item> 
    <item name="android:textStyle">bold</item> 
</style> 

現在在佈局XML(mainactivity.xml)這樣

style="@style/buttonStyle" 

最終代碼調用是這樣的:

<Button 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_marginTop="15dp" 
android:text="@string/edit" 
android:id="@+id/btnEdit" 
android:background="@drawable/button.xml" 
style="@style/buttonStyle" 
/> 

希望這有助於:)

+0

這是正確的答案。但仍然無法相信谷歌沒有提供更一致的方式來爲按鈕製作全球主題。語義上這是錯誤的。我們必須手動指定背景和樣式,而不是讓我們修改默認主題。 – Juanjo

+0

我試過這個,除了textColor以外的所有東西都可以使用。它只是不繼承白色,但顯示黑色。所有其他人都從風格和背景中正確地繼承。如果我在按鈕實例上明確地設置了相同的屬性,它就可以工作。奇怪的。 –