2013-06-19 16 views
5

Próbuję zmienić wszystkie kolory tekstu moich przycisków w mojej aplikacji na białe, a także próbuję uczynić je pogrubionymi. Ale tak się nie dzieje, nadpisuję the android:Widget.Button Pracuję dla Jelly Bean 4.1.2 Co robię źle?Zmiana stylu przycisku w całej aplikacji

definicja rozrywki w jawnym

android:theme="@style/spui" > 

Tematem gdzie chciałbym

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

stylu dla przycisku samej

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

Przycisk

<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

spróbować zastosować ten styl do każdego Przycisk. to zadziała. – SKK

+0

jeśli stosujesz ten motyw w aplikacji, upewnij się, że nie stosujesz innego dla działania lub samego przycisku. –

+0

Sam przycisk nie ma innego stylu. – mXX

Odpowiedz

15

Do stylizacji Button można użyć tego:

przejdź do folderu drawable i uczynić XML (np button.xml plików) zwany „styl”, który zawiera następujące elementy:

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

To jest mój kod, można wprowadzić niezbędne zmiany chcesz

Teraz nazywają go w XML układ (mainactivity.xml) jak ten

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

teraz, aby zmienić kolor czcionki i styl można użyć następujących który przychodzi jako część styles.xml w folderze wartości

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

Teraz nazywają to w XML układ (mainactivity.xml) jak ten

style="@style/buttonStyle" 

ostateczny kod jest:

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

Nadzieja to pomaga :)

+0

To jest właściwa odpowiedź . Ale nadal nie mogę uwierzyć, że Google nie zapewnia bardziej spójnego sposobu na globalny temat przycisku. Semantycznie to jest złe. Musimy ręcznie określić tło i styl, zamiast pozwolić nam modyfikować domyślny motyw. – Juanjo

+0

Próbowałem już tego, wszystko działa z wyjątkiem textColor. Po prostu nie dziedziczy białego koloru, ale wyświetla czarny. Wszystkie pozostałe są poprawnie dziedziczone ze stylu i tła. Jeśli ustawię tę samą właściwość jawnie na instancję przycisku, działa. Dziwne. –

Powiązane problemy