2012-11-16 6 views
18

Piszę aplikację dla systemu Android i chcę zmienić motyw mojej aplikacji.Zmiana wyglądu tekstu w stylach i motywach dla aplikacji na Androida

Udało mi się zmienić kolor tła aplikacji za pomocą motywu, ale staram się zmienić domyślny wygląd tekstu.

To jest mój plik zasobów styles.xml.

<resources> 
    <style name="QTheme" parent="android:Theme.Light"> 
     <item name="android:windowBackground">@color/q_green</item> 
     <item name="android:colorBackground">@color/q_green</item> 
     <item name="android:textAppearance">@style/QText</item> 
    </style> 

    <color name="q_green">#008000</color> 
    <color name="white">#FFFFFF</color> 

    <style name="QText" parent="@android:style/TextAppearance.Medium"> 
     <item name="android:textSize">20sp</item> 
     <item name="android:textColor">@color/white</item> 
     <item name="android:textStyle">bold</item> 
     <item name="android:textFont">Verdana</item> 
    </style> 
</resources> 

i po prostu sprawdzić, jest to przykład jednego z moich TextView chcę użyć powyższy styl w moim pliku układu.

<TextView 
    android:id="@+id/txtDevice" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:text="@string/device" 
/> 

Czy ktoś może zobaczyć, gdzie idę źle?

+6

Właśnie nadpisałeś styl "TextAppearance.Medium" w swoim motywie (który nie zmieni "TextView"). Jeśli chcesz zmodyfikować wygląd 'TextView', to przesłonięcie atrybutu stylu' textViewStyle' w twoim motywie. Lub możesz zastosować swój niestandardowy styl za pomocą 'android: textAppearance' – Luksprog

+0

Dzięki. Zmieniłem nazwę przedmiotu na android.textViewStyle i wydawało się, że to wystarczy. Zmieniło to tekst w moich spinnerach, nie tylko w widokach tekstowych. Czy istnieje sposób na rozróżnienie? –

+0

Nie jestem pewien. Jeśli się nie mylę, element 'TextView' Spinnera ma inny styl (który nadal dziedziczy po stylu' TextView'), wskazany przez atrybut 'spinnerItemStyle' w motywie. Możesz ustawić to na '@android: style/Widget.TextView.SpinnerItem' i zobacz jak to działa. – Luksprog

Odpowiedz

36

Tylko dla kompletności i pełnego uznania dla Lusprog, to jest teraz mój plik zasobów

<resources> 
    <style name="QTheme" parent="android:Theme.Light"> 
     <item name="android:windowBackground">@color/q_green</item> 
     <item name="android:colorBackground">@color/q_green</item> 
     <item name="android:textViewStyle">@style/QText</item> 
    </style> 

    <color name="q_green">#008000</color> 
    <color name="white">#FFFFFF</color> 

    <style name="QText" parent="@android:style/TextAppearance.Medium"> 
     <item name="android:textSize">20sp</item> 
     <item name="android:textColor">@color/white</item> 
     <item name="android:textStyle">bold</item> 
     <item name="android:typeface">sans</item> 
    </style> 
</resources> 

Także dzięki Padma Kumar za pomoc dotyczącą czcionek.

+0

Co zmieniłeś? inne niż android: krój pisma! –

+0

@ style/QText –

+0

Siano, czy możesz mi powiedzieć, android: textViewStyle to ten atrybut jest w Androidzie? –

1

// usunąć tę linię ze swoimi stylami nie ma atrybutu jak to

<item name="android:textFont">Verdana</item> 

// można dać czcionki do zmiany stylu czcionki

<item name="android:typeface">monospace</item> 

// dla settting style

<TextView 
    android:id="@+id/txtDevice" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    style="@style/QText" 
    android:text="@string/device" 
/> 
+2

jest sposób, w jaki mogę dodać styl do kompozycji, więc nie muszę ustawiać stylu dla każdego tekstu. –

+0

Nie można ustawić stylu czcionki przez xml. trzeba ustawić krój przez kod. –

+0

Dodawanie tego stylu do TextView nie działa –

Powiązane problemy