добавьте этот атрибут к вашему textView
в xml app:autoSizeTextType="uniform"
это изменит размер текста в соответствии с областью просмотра текста
<TextView
android:layout_width="50sp"
android:layout_height="50sp"
android:text="Hello World!"
app:autoSizeTextType="uniform"
tools:ignore="MissingPrefix" />
для дальнейшей настройки вы можете установить
app:autoSizeMaxTextSize="100sp"
app:autoSizeMinTextSize="20sp"
app:autoSizePresetSizes="@array/autosize_text_sizes"
, где autosize_text_sizes
- массив в файле значений arrays.xml res
создайте его, щелкнув правой кнопкой мыши значения -> новый -> файл ресурсов значений -> назовите его arrays.xml , который динамически выбирает размер текста в зависимости от доступности текстовой области
<?xml version="1.0" encoding="utf-8"?>
<resources>
<array name="autosize_text_sizes">
<item>10sp</item>
<item>50sp</item>
<item>150sp</item>
</array>