2013-06-19 37 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以外的所有东西都可以使用。它只是不继承白色,但显示黑色。所有其他人都从风格和背景中正确地继承。如果我在按钮实例上明确地设置了相同的属性,它就可以工作。奇怪的。 –