Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
znseday
16 / 16 / 1
Регистрация: 20.03.2012
Сообщений: 460
#1

Подогнать размер текста под прямоугольник - Программирование Android

16.04.2015, 01:58. Просмотров 524. Ответов 7
Метки нет (Все метки)

Рисую и печатаю текст на канве. Имеется прямоугольник с заданными размерами в пикселях (например, 150 на 80). И есть строка с текстом.
Как подогнать размер шрифта, чтобы текст гарантировано уместился в заданном прямоугольнике (естественно, размер текста нужен максимально возможный)?
Есть для этого специальные методы/классы? Или самому в цикле гонять все возможные размеры шрифта (мне по силам это написать, но это же дикое падение в производительности будет)?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2015, 01:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Подогнать размер текста под прямоугольник (Программирование Android):

Подогнать размеры под экран - Программирование Android
подскажите почему в eclipse он показывает что все нормально видно а когда на смарт закидываю не видно кнопки cancel <?xml version="1.0"...

Как подогнать ряд кнопок в TableLayout под ширину экрана? - Программирование Android
День добрый. Пишу игру простенькую Крестики-нолики. Поле состоит квадрата 3x3 из Кнопок, которые генерируются в коде. Размер кнопки...

Размер текста - Программирование Android
import java.util.ArrayList; import android.app.ListActivity; import android.database.Cursor; import...

Размер картинки под виджет - Программирование Android
В виджете только ImageButton, какой должен быть размер картинки, чтобы она была в квадрате 1х1 (нормально помещалась, полностью, и была...

Изменить размер изображения под телефон - Программирование Android
Всем привет, у меня такая проблема в данный момент: у меня есть картинка размером 1200 x 800 и мне нужно сделать так, чтобы она одинаково...

Title. Изменить размер текста - Программирование Android
Здравствуйте. Какой атрибут можно использовать, что бы установить свой размер текста "Теория"? <?xml version="1.0" encoding="utf-8"?> ...

7
krapotkin
2685 / 2561 / 648
Регистрация: 14.04.2014
Сообщений: 12,370
Записей в блоге: 7
16.04.2015, 09:20 #2
даже некая системная функция здесь шла бы путем подбора
так что можно только оптимизировать - выбор самого крупного символа для подбора по константе, деление вариантов пополам и т.д.
0
Pablito
2534 / 2013 / 627
Регистрация: 12.05.2014
Сообщений: 7,066
Завершенные тесты: 1
16.04.2015, 09:22 #3
я точно помню, что на форуме этот вопрос обсуждался в прошлом году и было решение
но искать по форуму предлагаю самостоятельно
0
znseday
16 / 16 / 1
Регистрация: 20.03.2012
Сообщений: 460
16.04.2015, 11:41  [ТС] #4
krapotkin, честно говоря, я не знаю, как именно устроены шрифты, но смею предположить, что в шрифтах может содержаться размер ширины символа в зависимости от его высоты. Т.е. теоретически какая-нибудь системная функция могла бы вычислять размер шрифта на основе информации о ширине символа и соотношения высоты/ширины символа.

Добавлено через 1 минуту
Методом деления пополам я реализовывал как-то очень давно, еще под Виндус, и тогда не было требований к производительности программы.
0
krapotkin
2685 / 2561 / 648
Регистрация: 14.04.2014
Сообщений: 12,370
Записей в блоге: 7
16.04.2015, 12:09 #5
http://startandroid.ru/ru/uroki/vse-...nie-tekst.html
0
znseday
16 / 16 / 1
Регистрация: 20.03.2012
Сообщений: 460
16.04.2015, 13:35  [ТС] #6
krapotkin, спасибо за ссылку, но ответа на мой вопрос там нет.
0
krapotkin
2685 / 2561 / 648
Регистрация: 14.04.2014
Сообщений: 12,370
Записей в блоге: 7
16.04.2015, 13:46 #7
// ширина текста
width = fontPaint.measureText(text);
// посимвольная ширина
widths = new float[text.length()];
fontPaint.getTextWidths(text, widths);

вот ширина. если получилось больше, фонт делаем -50 %
если меньше +50%

что не так????
0
znseday
16 / 16 / 1
Регистрация: 20.03.2012
Сообщений: 460
16.04.2015, 16:34  [ТС] #8
Цитата Сообщение от krapotkin Посмотреть сообщение
что не так????
Все так. Я писал выше, что это мне понятно, и я так уже раньше делал.
0
16.04.2015, 16:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.04.2015, 16:34
Привет! Вот еще темы с ответами:

Как сменить размер текста у Spinner - Программирование Android
Здравствуйте! Как сменить размер текста у Spinner`а?

Android label меняет размер текста при смене ориентации - Программирование Android
Я заметил что текст названия приложения меняет свой размер при смене ориентации. Но в большинстве приложений нет такого. Где находится...

Как автоматически изменять размер текста в spinner в зависимости от размера экрана? - Программирование Android
Здравствуйте. В программе использую две темы светлую и темную: <style name="BlackTheme" parent="android:style/Theme.Holo"> <item...

Как сделать так, чтобы мобильное приложение автоматически подстраивалось под размер экрана? - Программирование Android
В Android Studio мы же под определенную диагональ создаём приложение (один эмулятор).. Как при разработке сделать так, чтобы мобильное...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.