#android #button
#Android #кнопка
Вопрос:
У меня есть кнопки с фиксированным размером, но текст время от времени меняется. Иногда текст слишком длинный, чтобы поместиться на кнопке, и в этих случаях я хочу использовать меньший размер текста.
Как я могу изменить размер текста кнопки, если текст слишком длинный?
(Одним из решений может быть проверка количества символов, которые можно использовать с обычным размером текста, а затем изменение размера текста, если длина больше этой базовой линии. Но я надеялся на более динамичный подход.)
Ответ №1:
1) Измерьте кнопку. 2) Используя тот же шрифт, используйте Paint.getTextBounds(), чтобы получить ширину. 3) Сравните размер кнопки с шириной. Вероятно, вам потребуется добавить дополнительное пространство с обеих сторон для заполнения, но в любом случае это будет немного приблизительная оценка. 4) Если текст был слишком большим, уменьшите размер текста (на объекте рисования) и перейдите к 2. 5) Теперь, когда у вас есть рабочий размер, вызовите setTextSize на кнопке.
Примечание: если вы делаете это для AlertDialog, вам нужно сделать это после того, как кнопка существует — у меня были проблемы с шагом 1 в зависимости от того, куда я поместил эту функцию, но это было так давно, что я забыл точную проблему. Я думаю, что я должен был сделать это после вызова show?
Ответ №2:
Вы можете расширить класс Button до чего-то похожего на AutoFitTextView
Комментарии:
1. @EirikO пожалуйста, отметьте ответ, если он вам помог.