Имеет ли TextView масштаб шрифта для заполнения родительского элемента?

Есть ли способ, чтобы TextView выбирал размер шрифта таким образом, чтобы он заполнял все свободное пространство? Например:

<LinearLayout
  layout_width="fill_parent"
  layout_height="50dip" >

  <TextView
    layout_width="fill_parent"
    layout_height="fill_parent"
    textSize="scale?" />

</LinearLayout>

Спасибо

Ответы

Ответ 1

Нет, нет масштабирования шрифтов в TextView. Вы можете перегрузить метод onDraw() дочерним элементом TextView, но TextView не поддерживает автоматическое масштабирование текста.

Взгляните на этот другой вопрос .

Ответ 2

Как и в ответе Nick Campion, я использовал цикл и статический макет для итерации до нужного размера. Мои требования должны были соответствовать ширине и использовать не более одной строки (без эллипсов):

    int i = 0;
    while(i < 2) {
       layout = new StaticLayout(text, textPaint, w, Alignment.ALIGN_NORMAL, 1, 0, true);
        i = layout.getLineCount();
        textSize += 2;
        textPaint.setTextSize(textSize);
    }
    textPaint.setTextSize(textSize*0.95f);

Ответ 3

Просто обновить, от API 26 (Android 8.0) TextViews имеет атрибут для масштабирования текста по горизонтальной и вертикальной осям

<?xml version="1.0" encoding="utf-8"?>
<TextView
    android:layout_width="match_parent"
    android:layout_height="200dp"
    android:autoSizeTextType="uniform" />

Посмотрите на Автосогласование TextViews