2011-12-05 21 views
10

Estoy tratando de configurar el tamaño de texto a nivel global y no puedo encontrar ni encontrar la forma de hacerlo.Android: ¿Cómo configuro el tamaño de texto para un diseño?

Por ejemplo, tengo algo como esto:

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

Los TableRows y TextViews mismos se generan dinámicamente en función de la entrada del usuario.

El problema es que me gustaría establecer la base textSize globalmente basada en un archivo de recursos sin tener que ir y tocar un montón de código. ¿Hay alguna forma de decirle a la aplicación "hey app, úsala como tu tamaño de texto base para todas las textViews"?

O expresado de otra manera, en HTML puedo establecer el tamaño de fuente en los niveles de cuerpo, div y tabla. ¿Hay algo análogo que pueda hacer en uno de los niveles de diseño (LinearLayout, TableLayout, ScrollView, etc.)?

Respuesta

13

Para establecer el estilo global para todos TextView s, establezca el atributo android:textViewStyle en un tema personalizado y aplique el tema a su aplicación o actividades individuales.

Pseudocódigo:

<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

gracias que hizo el truco. Busqué en Google durante horas y no pude encontrarlo. Gracias de nuevo. –

+0

dulce, me alegro de ayudar! –

+1

También vale la pena mencionar que "debería preferir el sp (parámetro independiente de escala) para definir tamaños de texto. El factor de escala sp depende de la configuración del usuario y el sistema escala el tamaño de la misma manera que para dp". http://developer.android.com/guide/practices/screens_support.html#screen-independence – scottyab

0

O si desea establecer el valor por defecto en todo el estilo del texto, sino anular partes de él para ciertas cosas (como el botón en este ejemplo) se podría hacer algo como esto:

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

probablemente su única mejor lugar para empezar, aunque sería: http://developer.android.com/design/style/index.html

Cuestiones relacionadas