Отображение текста в несколько строк в Android - PullRequest
0 голосов
/ 25 января 2011

У меня есть графический проект Android, и мой основной прием для обеспечения функциональности пользовательского интерфейса - использовать drawrect и drawtext для рисования прямоугольника с меткой на экране.Затем я фиксирую сенсорные события и проверяю, происходят ли они в прямоугольнике - когда они появляются, вуаля, у меня есть кнопка.

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

В Android есть простой способ разбитьнаписать текст и написать за один шаг ??

Спасибо, Р.

Ответы [ 2 ]

0 голосов
/ 31 января 2011

В приложении для Android вы можете создать макет и заполнить его различными виджетами. Одним из таких потенциальных виджетов является кнопка, и если вы ее используете, она будет отображать ярлык вашей кнопки более чем на одной строке, если длина ярлыка требует этого ...

Однако мое приложение - SurfaceRunner, и, насколько я могу судить, это представление не поддерживает кнопки. Я использую функциональность кнопки, рисуя различные прямоугольники и проверяя касания экрана внутри их границ. Это прекрасно работает для моих целей, но никак не автоматизирует какие-либо задачи отображения (как это делает виджет кнопки). Чтобы отобразить длинную метку в две строки, это необходимо сделать явно в коде. Ну хорошо.

К счастью, это только одна дополнительная строка:

canvas.drawRoundRect (Button, ROUNDOVER_SIZE-1, ROUNDOVER_SIZE-1, paint);
canvas.drawText (Text1, Button.centerX() - paint.measureText (Text1)/2, Button.centerY() - 10, paint);
canvas.drawText (Text2, Button.centerX() - paint.measureText (Text2)/2, Button.centerY() + 20, paint);

Очевидно, было бы круче, если бы я использовал что-то более автоматическое, чем "10" и "20", но это действительно делает работу.

0 голосов
/ 25 января 2011

Я не думаю, что есть простой способ добиться этого, вам придется измерить текст и нарисовать его со смещением, равным ButtonWidth - TextWidth / 2.

...