Главная » Разработка для Android » Продвинутое рисование с помощью Canvas

0

С классом Canvas вы познакомились в главе 4, когда учились создавать собственные Представления. Canvas также упоминался в главе 8 при разме- щении аннотаций  на Наложениях для элемента MapView.

Концепция ?????? — распространенная абстракция, используемая в про- граммировании графики  и, как правило,  состоящая  из трех компонен- тов:

Canvas — предоставляет методы для рисования, которые отображают графические примитивы на исходном растровом изображении;

Paint — иногда встречается под названием  brush  («кисть»); Paint позволяет  указывать,  как именно  графические примитивы должны отображаться на растровом изображении;

Bitmap — поверхность, на которой происходит рисование. Большинство продвинутых методик, описанных  в этой главе, связаны

с изменением и модификацией объекта Paint,  с помощью которого вы мо-

жете придавать объем и текстуру плоским растровым изображениям.

API для рисования в Android поддерживает полупрозрачность, градиент- ные заливки, округленные прямоугольники и сглаживание.  К сожалению, из-за ограниченных ресурсов векторная  графика пока что не поддержива- ется, вместо этого используется традиционная растровая  перерисовка.

В результате такого подхода возрастает эффективность, изменение объ- екта Paint влияет только на новые элементы, не затрагивая нарисованные.

ПРИМЕЧАНИЕ

Для тех, у кого есть опыт разработки под Windows: возможности рисо- вания двумерной (2D) графики в Android мало чем отличаются от тех, что предоставляет библиотека GDI+.

Что вы можете нарисовать

Класс Canvas можно назвать оберткой вокруг растрового изображения, которое вы будете использовать в качестве полотна для своих художествен- ных изысков. Он предоставляет набор методов вида draw* для воплощения задумок.

В приведенном  списке  кратко  указаны  доступные  графические при- митивы.

drawARGB/drawRGB/drawColor. Заполняет Холст сплошным  цве- том.

drawArc. Рисует  дугу между двумя углами внутри  заданной  прямо- угольной области.

drawBitmap. Рисует  растровое  изображение на элементе  Canvas.

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

drawBitmapMesh. Рисует изображение с использованием сетки, с по- мощью которой можно управлять отображением итоговой картинки, перемещая точки внутри нее.

drawCircle. Рисует окружность с определенным радиусом вокруг за- данной точки.

drawLine(s). Рисует  линию (или  последовательность линий) между двумя точками.

drawOval.  Рисует овал на основе прямоугольной области.

drawPaint. Закрашивает весь Холст с помощью  заданного  объекта

Paint.

drawPath. Рисует указанный контур, используется для хранения  на- бора графических примитивов в виде единого объекта.

drawPicture. Рисует  объект Picture внутри  заданного  прямоуголь- ника.

drawPosText. Рисует текстовую строку, учитывая смещение для каж- дого символа.

drawRect. Рисует прямоугольник.

drawRoundRect. Рисует прямоугольник с закругленными углами.

drawText. Рисует  текстовую  строку на Холсте. Шрифт,  размер, цвет и свойства отображения текста задаются в соответствующем объекте Paint.

drawTextOnPath. Рисует текст, который отображается вокруг опреде- ленного контура.

drawVertices. Рисует  набор треугольников в виде совокупности вер- шинных (вертексных) точек.

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

Источник: Майер P. Android 2 : программирование приложений для планшетных компьютеров и смартфонов : [пер. с англ. ] / Рето Майер. — М. : Эксмо, 2011. — 672 с. — (Мировой компьютерный бестселлер).

По теме:

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