Parece que el official documentation no responde esto, o no puedo resolverlo.Inconsistencia al establecer el tamaño de la fuente TextView en el código y en los recursos
Elemento (no importa el AlertDialog
, esto ocurre en cualquier TextView también):
TextView tv = (TextView) dialog.findViewById(android.R.id.message);
inconsistencia. Caso A:
tv.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14);
// or tv.setTextSize(14); does the same
Caso B:
tv.setTextSize(getResources().getDimension(R.dimen.text_size_small));
// TypedValue makes no difference either.
donde values/dimens.xml
lo tiene:
<dimen name="text_size_small">14sp</dimen>
Resultado: tamaño de la fuente no es la misma, y parece mucho más grande cuando se recuperan a partir de recursos. Probablemente me esté perdiendo algo, ¿cuál es mi error y lo más importante? ¿Por qué?
- ACTUALIZACIÓN DE PRIMERA RESPUESTA -
El número fijo era sólo un ejemplo, ya que nadie sería duro código fijo tamaños de fuente en el código. Así que déjenme reformular la pregunta:
¿Por qué si obtengo el recurso del código, el tamaño del texto es más grande que cuando obtengo el recurso de un diseño XML? Además, la pregunta sigue siendo la misma: ¿cómo recupero una unidad de 14sp en el código y la mantengo consistente con la unidad de 14sp que está configurada en el diseño XML? No acepté la respuesta porque no me dice cómo usar las unidades sp del recurso en el código para el tamaño del texto.
En esta disposición, el tamaño de fuente es diferente, incluso si la dimensión es la misma:
<TextView
android:id="@+id/my_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/TextBody" />
styles.xml:
<style name="TextBody">
<item name="android:textSize">@dimen/text_size_small</item>
<item name="android:lineSpacingMultiplier">1.1</item>
<item name="android:textColor">@color/body_text_1</item>
<item name="android:textIsSelectable">true</item>
<item name="android:linksClickable">true</item>
</style>
Ver text_size_small allí? ¿Por qué en este caso el tamaño de la fuente es más pequeño que en el código, usando el mismo recurso dimen
?
Gracias por plantear esta cuestión. También lo entiendo en mi proyecto. – anticafe