Главная » Разработка для Android » Рисование текста в Android приложении

0

 

Среди наиболее важных методов Canvas – те, которые используются для рисования текста. Хотя часть функций Canvas дублируется в других местах, это не касается функций, связанных с отображением текста. Чтобы поместить текст в виджет, нужно использовать Canvas (или сделать подкласс от другого виджета, применяющего его).

Canvas предоставляет несколько методов для отображения текста, которые позволяют вам с разной степенью гибкости работать над размещением каждого символа в тексте. Методы представлены попарно: один принимает строку String, а другой – массив char[]. В некоторых случаях применяются дополнительные вспомогательные методы. Например, простейший способ нарисовать текст – это передать координаты х и у, в которых начинается текст, и Paint, где указываются гарнитура, цвет шрифта и другие атрибуты (пример 9.4).

В то время как первый метод передает текст через единственный параметр String, второй метод использует три параметра: массив char, индекс, указывающий первый символ из этого массива, с которого нужно начать рисовать текст, и общее количество символов текста, которые следует отобразить. В примере 9.5 приводится метод onDraw, демонстрирующий применение трех различных методов отображения текста. Вывод показан на рис. 9.2.

Пример 9.5. Три способа рисования текста

Рис. 9.2. Вывод трех вариантов рисования текста

Как видите, простейшая из пар – drawText – просто рисует текст из точки с заданными координатами. С другой стороны, в случае с drawTextOnPath текст можно рисовать вдоль любой линии Path. Линия, используемая в примере, – простая дуга. С тем же успехом это может быть прямая линия или кривая Безье.

Если и возможностей drawTextOnPath оказывается недостаточно, Canvas предлагает drawPosText – метод, позволяющий указать точное положение каждого символа в тексте. Обратите внимание – при задании положения символов попеременно записываются элементы массивов х и у: х\,у\, х2, …

Источник: Android. Программирование на Java для нового поколения мобильных устройств

По теме:

  • Комментарии