2013-06-19 11 views
5

Ich versuche, alle TextColor meiner Schaltflächen in meiner App zu ändern weiß und auch, um es fett zu machen. Aber das passiert nicht, ich überschreibe the android:Widget.Button Ich entwickle für Jelly Bean 4.1.2 Was mache ich falsch?Ändern der Schaltflächenstil in der gesamten Anwendung

Theme Definition in manifest

android:theme="@style/spui" > 

Das Thema, wo ich mag

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

Der Stil für die Schaltfläche selbst

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

Die Schaltfläche

<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

Versuchen, diesen Stil zu jedem anwenden Taste. das wird funktionieren. – SKK

+0

Wenn Sie dieses Design in der Anwendung anwenden, stellen Sie sicher, dass Sie kein anderes für die Aktivität oder die Schaltfläche selbst anwenden. –

+0

Die Schaltfläche selbst hat keinen anderen Stil – mXX

Antwort

15

Für Stylen Button Sie diese verwenden können:

Zum drawable Ordner und eine XML machen (z button.xml) Datei „Stil“ genannt, die die folgendes enthält:

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

Dies ist mein Code, können Sie die notwendigen Änderungen vornehmen möchten, dass Sie

es jetzt in Ihrem Layout XML nennen (mainactivity.xml) wie dieses

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

nun die Schriftfarbe ändern und Stil können Sie die folgende verwendet werden, die als Teil der styles.xml im Wert Ordner kommt

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

dies nun im Layout XML nennen (mainactivity.xml) wie dieser

style="@style/buttonStyle" 

Der letzte Code ist:

<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" 
/> 

this helps :)

+0

Dies ist die richtige Antwort . Aber ich kann immer noch nicht glauben, dass Google keine einheitlichere Möglichkeit bietet, ein globales Thema für die Schaltfläche zu erstellen. Semantisch ist das falsch. Wir müssen einen Hintergrund und einen Stil manuell angeben, anstatt das Standarddesign ändern zu lassen. – Juanjo

+0

Ich habe das versucht, alles funktioniert außer textColor. Es erbt einfach nicht die weiße Farbe, sondern zeigt schwarz an. Alle anderen werden korrekt vom Stil und Hintergrund geerbt. Wenn ich dieselbe Eigenschaft explizit für die Button-Instanz festlege, funktioniert sie. Seltsam. –