2011-12-05 15 views
10

Próbuję ustawić textize na poziomie globalnym i nie mogę wymyślić ani znaleźć sposobu, aby to zrobić.Android: Jak ustawić textize dla układu?

Na przykład mam coś takiego:

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

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id = "@+id/Table" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:shrinkColumns="*" 
     android:stretchColumns="*"> 
</TableLayout> 
</ScrollView> 

W TableRows i TextView sami są generowane dynamicznie w zależności od danych wejściowych użytkownika.

Problem polega na tym, że chciałbym ustawić podstawowy textSize globalnie w oparciu o plik zasobów, bez konieczności wchodzenia i dotykania garści kodu. Czy jest sposób, aby powiedzieć aplikacji, "hej aplikacji, użyj tego jako podstawowego textSize dla wszystkich textViews?"

Lub inaczej sformułowany, w HTML mogę ustawić rozmiar czcionki na poziomie ciała, div i tabeli. Czy istnieje coś analogicznego, co mogę zrobić na jednym z poziomów układu (LinearLayout, TableLayout, ScrollView itp.)?

Odpowiedz

13

Aby ustawić globalną stylizację dla wszystkich TextView s, ustaw atrybut android:textViewStyle w niestandardowej kompozycji i zastosuj motyw do swojej aplikacji lub poszczególnych czynności.

Pseudokod:

<style name="MyTheme" parent="android:Theme"> 
    <item name="android:textViewStyle">@style/MyTextView</item> 
</style> 

<style name="MyTextView" parent="android:Widget.TextView"> 
    <item name="android:textSize">14sp</item> 
</style> 

... 

<activity android:theme="@style/MyTheme"> 
    ... 
+0

dzięki że wystarczyły. Szukałem go przez wiele godzin i nie mogłem go znaleźć. Dzięki jeszcze raz. –

+0

słodko, chętnie pomożemy! –

+1

Warto również wspomnieć, że "powinieneś preferować sp (niezależny od skali piksel), aby zdefiniować rozmiary tekstu, a współczynnik skalowania sp zależy od ustawienia użytkownika, a system skaluje rozmiar tak samo, jak robi to dla dp." http://developer.android.com/guide/practices/screens_support.html#screen-independence – scottyab

0

Lub jeśli chcesz ustawić domyślną dookoła stylu tekstu jednak przesłonić jego części dla niektórych rzeczy (jak przycisk w tym przykładzie) można zrobić coś takiego:

 <style name="whiteText" parent="@android:style/TextAppearance.Medium"> 
      <item name="android:textStyle">normal</item> 
      <item name="android:textColor">@android:color/white</item> 
     </style> 
     <style name="buttonStyle" parent="@android:style/Widget.Button"> 
      <item name="android:textAppearance">@style/whiteText</item> 
      <item name="android:textStyle">bold</item> 
      <item name="android:textColor">@android:color/black</item> 
      <item name="android:gravity">center</item> 
      <item name="android:background">@drawable/pinkbutton</item> 
      <item name="android:cacheColorHint">@android:color/transparent</item> 
      <item name="android:minHeight">50.0dip</item> 
     </style> 
     <style name="DarkTheme" parent="@android:style/Theme.Black.NoTitleBar"> 
      <item name="android:buttonStyle">@style/buttonStyle</item> 
      <item name="android:textAppearance">@style/whiteText</item> 
     </style> 

Prawdopodobnie jedyny Państwa najlepsze miejsce, aby zacząć chociaż byłoby: http://developer.android.com/design/style/index.html

Powiązane problemy