2011-12-05 3 views
10

J'essaye de placer le textsize au niveau global et ne peux pas figurer ou trouver un moyen de le faire.Android: Comment définir la taille du texte pour une mise en page?

Par exemple, je quelque chose comme ceci:

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

Les tablerows et TextViews sont eux-mêmes générés dynamiquement selon l'entrée de l'utilisateur. Le problème est que je voudrais définir globalement textSize de base en fonction d'un fichier de ressources sans avoir à toucher un tas de code. Existe-t-il un moyen de dire à l'application, "hey app, utilisez ceci comme textSize de base pour tous les textViews?"

Ou exprimé d'une autre manière, en HTML, je peux définir la taille de la police au niveau du corps, de la div et de la table. Y at-il quelque chose d'analogue que je peux faire à un niveau de disposition (LinearLayout, TableLayout, ScrollView, etc.)?

Répondre

13

Pour définir le style global pour tous les TextView, définissez l'attribut android:textViewStyle dans un thème personnalisé et appliquez le thème à votre application ou à vos activités individuelles.

pseudocode:

<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

grâce qui a fait l'affaire. Je ai googlé pendant des heures et ne pouvais pas le trouver. Merci encore. –

+0

doux, heureux d'aider! –

+1

Il convient également de mentionner que «vous devriez préférer le sp (pixel indépendant de l'échelle) pour définir les tailles de texte.Le facteur d'échelle sp dépend d'un paramètre utilisateur et le système redimensionne la même taille que pour dp. http://developer.android.com/guide/practices/screens_support.html#screen-independence – scottyab

0

Ou si vous voulez définir la valeur par défaut autour de style de texte, mais passer outre certaines parties pour certaines choses (comme le bouton dans cet exemple), vous pouvez faire quelque chose comme ceci:

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

probablement votre seul meilleur endroit pour commencer serait bien: http://developer.android.com/design/style/index.html

Questions connexes