Android: Diferentes estilos (textSize) para diferentes tamaños de diseño

He hecho el estilo de encargo para todos los botones del texto en pantallas grandes

<style name="button_large" parent="@android:style/Widget.TextView"> <item name="android:textColor">@color/button_color</item> <item name="android:textSize">30dp</item> <item name="android:clickable">true</item> <item name="android:soundEffectsEnabled">false</item> </style> 

Ahora quiero botones más pequeños para la pantalla normal y agrego estilo noew donde sólo android: textSize cambiado.

 <style name="button_normal" parent="@android:style/Widget.TextView"> <item name="android:textColor">@color/button_color</item> <item name="android:textSize">10dp</item> <item name="android:clickable">true</item> <item name="android:soundEffectsEnabled">false</item> </style> 

¿Es posible extraer este valor y recibir el valor necesario en función del tamaño de la pantalla? Y use sólo un estilo.

  <item name="android:textSize">value_based_on_screen_size</item> 

Y en caso de pantalla grande weill sea 30 y para la pantalla normal será 10

Sí, eso es posible. Así es como puede arreglarlo. En sus values/styles.xml defecto values/styles.xml ,

 <style name="button" parent="@android:style/Widget.TextView"> <item name="android:textColor">@color/button_color</item> <item name="android:textSize">@dimen/button_text_size</item> <item name="android:clickable">true</item> <item name="android:soundEffectsEnabled">false</item> </style> 

A continuación, crear un values/dimens.xml como este,

 <resources> <dimen name="button_text_size">10sp</dimen> </resources> 

Y crear un values-large como este,

 <resources> <dimen name="button_text_size">30sp</dimen> </resources> 

Ps, use sp para las fuentes. Es como dp , excepto que si el usuario aumenta el tamaño de fuente predeterminado a través de la configuración del sistema, las fuentes cambiarán en consecuencia.

Prepare primero estos archivos:

 res/values-ldpi/dimens.xml res/values-mdpi/dimens.xml res/values-hdpi/dimens.xml 

A continuación, declare valores de recursos para diferentes archivos:

 <!-- in values-ldpi/dimens.xml --> <dimen name="mytextSize">30dp</dimen> 

y

 <!-- in values-mdpi/dimens.xml --> <dimen name="mytextSize">20dp</dimen> 

A continuación, utilice esta forma en su estilo:

 <item name="android:textSize">@dimen/mytextSize</item> 
  • error de layout-large-land-hdpi
  • Cómo mostrar advertencia / error si el id de recurso utilizado pertenece a otro esquema de actividad
  • Haga que los envases de RadioButtons horizontales sean demasiado largos para la pantalla.
  • Cómo limitar la altura de la vista desplegable de Spinner en Android
  • Poner contenido debajo de AppBarLayout en un CoordinatorLayout
  • Advertencia del adaptador de enlace personalizado de DataBinding de Android
  • Capture Layout resize before API 11
  • Problema con la alineación mediante TextInputLayout y Spinner
  • Obtener errores en el desarrollo de Android "R no se puede resolver a una variable" y en el diseño también
  • ¿Cómo puedo mostrar la imagen en el centro de la pantalla?
  • Mostrar texto dinámico en una vista de Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.