Как мне автоматически настроить textSize в Android? - PullRequest
0 голосов
/ 06 апреля 2011

Я пишу приложение, в части которого отображается строка текста. Есть определенные сценарии, в которых эта строка текста занимает более одной строки. проблема в том, что я хочу, чтобы он занимал только одну строку, и когда я настраиваю его либо в java, либо в xml, чтобы он занимал только одну строку, текст обрезается. Как бы я сделал так, чтобы он автоматически регулировал размер шрифта текста, чтобы он занимал только одну строку без обрезки?

Ответы [ 2 ]

3 голосов
/ 06 апреля 2011

Используйте пропорции вместе с Paint.measureText () :

(размер текста / measureText width) = (perfectSize / screenWidth)

Решение для идеального размера текста:

perfectSize = (text size / measureText width) * screenWidth;

Вы можете найти ширину экрана с помощью getWindowManager().getDefaultDisplay().getWidth() из класса Дисплей .

Превратил это в математическую задачу!

0 голосов
/ 06 апреля 2011

Это не так сложно сделать, если вы используете Paint # measureText .

Обычно вы начинаете с высоты шрифта, которая меньше высоты вашего TextView, и затем выполняете итерацию.(или выполнить бинарный поиск) с помощью шрифтов разных размеров, пока не найдете тот, который имеет размеры, меньшие ширины вашего TextView.

Это требует некоторой реализации, так как не существует «автоматического» способа, предоставляемогорамки.

...