Класс Graphics
При помощи класса Graphics осуществляется двухмерное представление графики на экране телефона. Класс Graphics существует также в составе Java 2 SE, но в платформе Java 2 ME он сильно урезан, всвязи с ограниченными системными ресурсами телефонов. Поэтому имеется возможность рисовать только линии, прямоугольники, дуги и текст. Для окрашивания этих примитивов предусмотрена работа с цветовой компонентой.
Система координат, используемая для представления графики в Java 2 ME, перевернута по отношению к обычной Декартовой системе координат. Начало системы координат, находится в левой верхней точке экрана телефона. Положительная ость X проходит по верхней кромке экрана слева направо, а положительная ось Y – сверху вниз по левой стороне экрана, как изображено на рис. 7.1.
Такая система координат отнюдь не новшество в программировании двухмерной графики. Идентичная модель координат применяется так же в DirectX и OpenGL для представления двухмерных сцен, но уже в компьютерной графике.
Рис. 7.1. Система координат в Java 2 ME
Методы класса Graphics
Основные методы класса Graphics обеспечивают прорисовку двухмерной графики. Есть еще несколько методов, с помощью которых можно произвести перемещение системы координат и произвести отсечение (clipping). Основные методы класса Graphics:
- void copyArea(int x_src, int y_src, int width, int height, int x_dest, int y_dest, int anchor) – копирует прямоугольную область из установленных значений в параметрах (x_src, y_src, width, height), в новую область (x_dest, y_dest);
- void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle) – рисует контур дуги в виде эллипса;
- void drawChar(char character, int x, int y, int anchor) – рисует символ;
- void drawChars(char[] data, int offset, int length, int x, int y, int anchor) – рисует массив символов:
- void drawlmage (Image img, int x, int y, int anchor) – рисует изображение;
- void drawLine(int x1, int y1, int x2, int y2) – рисуетлинию из точки x1 и y1, до точки х2 и у2;
- void drawRegion(Image src, int x_src, int y_src, int width, int height, int transform, int x_dest, int y_dest, int anchor) – копирует изображения в заданную область на экран телефона;
- void drawRoundRect(int x, int у, int width, int height, int – arcWidth, int arcHeight) – рисует контур прямоугольника, используя закругленные углы;
- void fillArc(int x, int y, int width, int height, int startAngle, int arcAngle) – рисует заполненную цветом дугу;
- void fillRect(int x, int у, int width, int height) – рисует заполненный цветом прямоугольник;
- void fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) – рисует заполненный прямоугольник, используя закругленные углы;
- void fillTriangle(int x1, int y1, int x2, int y2, int x3, int y3) – рисует заполненный цветом треугольник;
- int getBlueComponent () – получает синий компонент цвета;
- int getClipHeight () – получает высоту для текущей области отсечения;
- int getClipWidth() – получает ширину для текущей области отсечения;
- int getColor () – получает текущий цвет;
- Font getFont () – получает текущий шрифт;
- int getGreenComponent () – получает зеленный компонент цвета;
- int getRedComponent () – получает красный компонент цвета;
- void setClip(int x, int y, int width, int height) – устанавливает отсечение заданной области экрана;
- void setColor (int RGB) – устанавливает цвет при помощи значения RGB;
- void setColor (int red, int green, int blue) – назначает цвет при помощи трех цветовых компонентов red, green и blue;
- void setFont (Font font) – устанавливает заданный шрифт;
- void setStrokeStyle (int style) – задает штриховой стиль рисуемому контексту, используя константы SOLID и DOTTED;
- void translate (int x, int у) – перемещает систему координат в точку х и у.