Red de conocimiento informático - Computadora portátil - Cómo configurar dinámicamente el tamaño de fuente en Android

Cómo configurar dinámicamente el tamaño de fuente en Android

//Establece el tamaño de fuente para TextView cuyo ID es nombre

TextView mName = (TextView)findViewById(R.id.name);

mName.setTextSize(22); /p >

Comience a aprender Android y configure el tamaño de fuente, que no es más que usar el código anterior. Android ha escrito demasiado y quiere leer el valor 22 establecido en dimensiones. Es simple, a continuación está el código. cto.com

//definición en XML22sp

//da una identificación para el nombre TextView establece el tamaño de fuente

TextView mName = (TextView)findViewById(R.id.name);

mName.setTextSize(TypedValue.COMPLEX_UNIT_PX,

getResources().getDimensionPixelSize(R.dimen. my_text_size)));

A veces, cuando usas un método, no miras la unidad, solo conoces el tipo. De hecho, el método setTextSize() está escrito muy claramente. método, la unidad está escalando píxeles, es decir, sp, no px (píxeles). En otras palabras, es la misma unidad que 22sp definida en xml general. El método sobrecargado tiene dos parámetros, uno es el parámetro de unidad y el otro es el parámetro de valor. Ejemplo general:

[Java]

setTextSize(TypedValue.COMPLEX_UNIT_PX,22); //22 píxeles

setTextSize(TypedValue.COMPLEX_UNIT_SP,22); /22SP

setTextSize(TypedValue.COMPLEX_UNIT_DX,22); //22SPCOMPLEX_UNIT_DIP,22); //22DIP

El método getDimensionPixelSize() devuelve el valor del píxel, por lo que mName.setTextSize( Valorescrito. COMPLEX_UNIT_PIP,22); //22DIP. COMPLEX_UNIT_PX,

getResources().getDimensionPixelSize(R.dimen.my_text_size));

Al principio, escribí mName.setTextSize(getResources().getDimensionPixelSize(R.dimen.my_text_size));; como resultado, se produjo un error grave. Como se mencionó anteriormente, setTextSize utiliza de forma predeterminada unidades SP. pero pasé La entrada es un valor de píxel y el resultado es que la fuente se vuelve inusualmente grande.