2011-12-05 16 views
10

Sto cercando di impostare il testo a livello globale e non riesco a capire o trovare un modo per farlo.Android: come posso impostare il testo per un layout?

Per esempio io ho qualcosa di simile:

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

Le TableRows e TextViews si sono generati in modo dinamico a seconda di input dell'utente.

Il problema è che vorrei impostare la base textSize a livello globale in base a un file di risorse senza dover andare a toccare un gruppo di codice. C'è un modo per dire all'app, "hey app, usa questo come testo di base Dimensione per tutte le visuali di testo?"

Oppure in un altro modo, in HTML, posso impostare la dimensione del carattere a livello di corpo, div e tabella. C'è qualcosa di analogo che posso fare a livello di layout (LinearLayout, TableLayout, ScrollView, ecc.)?

risposta

13

Per impostare lo stile globale per tutti gli TextView s, impostare l'attributo android:textViewStyle in un tema personalizzato e applicare il tema all'applicazione o alle singole attività.

Pseudocodice:

<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

grazie che ha fatto il trucco. Ho cercato su google per ore e non riuscivo a trovarlo. Grazie ancora. –

+0

dolce, felice di aiutare! –

+1

Vale anche la pena menzionare che "si dovrebbe preferire lo sp (pixel indipendente dalla scala) per definire le dimensioni del testo: il fattore di scala sp dipende da un'impostazione utente e il sistema ridimensiona le dimensioni come fa per dp." http://developer.android.com/guide/practices/screens_support.html#screen-independence – scottyab

0

O se si volesse impostare il valore predefinito in tutto lo stile del testo, ma ignorare parti di esso per certe cose (come il pulsante in questo esempio) si potrebbe fare qualcosa di simile:

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

Probabilmente il vostro posto migliore singolo per iniziare anche se sarebbe: http://developer.android.com/design/style/index.html

Problemi correlati