Intereting Posts
Коллекции в ORMLite Как решить INSTALL_FAILED_DEXOPT эту ошибку? Как создать Drawable из потока без изменения его размера? Включить зависимости maven в eclipse «Запустить As -> Приложение Android» Как делиться текстом и изображением на Facebook с использованием намерения Включение программного обеспечения База данных Android – не может выполнять эту операцию, поскольку пул соединений был закрыт Разметка XML-таблицы? Две строки EQUAL-width, заполненные кнопками одинаковой ширины? Видовое окно соответствует ширине экрана и большим изображениям Android: очистить стопку, не заставляя Фрагменты проходить их методы жизненного цикла Использование библиотеки Scala для приложения для Android Android: изменение цвета фона выпадающей навигации в панели действий Максимальный размер шрифта OpenGL ES 2.0 в Android Странная проблема обновления ViewPager с новым контентом: Должен использовать android: showAsAction, если вы не используете библиотеку appcompat

У TextView масштабируется его размер шрифта, чтобы заполнить родительский элемент?

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

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

благодаря

Solutions Collecting From Web of "У TextView масштабируется его размер шрифта, чтобы заполнить родительский элемент?"

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

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

Как и в ответе 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);