Программирование мобильных телефонов

Рисование прямоугольников




При создании прямоугольников можно использовать два метода класса Graphics- это drawRect() и fillRect (). При помощи метода drawRect () рисуется только контур прямоугольника, а метод fillRect () позволяет нарисовать прямоугольник уже закрашенным каким-либо цветом (изначально по умолчанию цвет черный). Оба метода абсолютно идентичны по количеству и назначению параметров, поэтому рассмотрим прототип одного из них, а именно метода drawRect ().

public void drawRect(int x, int y, int width, int height)

Параметры метода drawRect ():

  •  x - координата точки по оси X для левого верхнего угла прямоугольника;
  •  у - координата точки по оси Y для левого верхнего угла прямоугольника;
  •  width - ширина рисуемого прямоугольника;
  •  height - высота рисуемого прямоугольника.




В составе класса Graphics имеется еще один метод рисующий прямоугольник, но с закругленными углами - drawRoundRqct (). Этот метод имеет уже шесть параметров, где первые четыре параметра работают в том же ключе что и методы drawRect () и fillRect (), а два последних параметра определяют степень закругленности углов. В листинге 7.2 рисуется три разных по размеру прямоугольника, и закрашиваются тремя цветами: красным, зеленым и синим. Для закрашивания прямоугольников применяется метод setColor (int red, int green, int blue) с тремя параметрами. Выставляя любое целочисленное значение от 0 до 255 для каждого параметра можно создавать разнообразную цветовую гамму, естественно учитывая при этом цветовые возможности телефона, на котором будет работать эта программа. Для того чтобы определить доступную цветность дисплея телефона, необходимо воспользоваться методами класса Display:

  •  isColor () - если телефон поддерживает цветовую гамму, то возвращает значение true;
  •  numColor() - определяет количество доступных цветов.


/** Листинг 7.2 Класс Main и класс Rectangles */ import javax. micro-edit ion. Icdui.*; import javax.microedition.midlet.*; public class Main extends MIDlet implements CommandListener { // команда выхода из программы private Command exitMidlet = new Command("Выход", Command.EXIT, 0); public void startAppO { // создаем объект класса Rectangles Rectangles myrec = new Rectangles(); // добавляем команду выхода myrec. addCommand( exitMidlet); myrec.setCommandListener(this); Display.getDisplay(this).setCurrent(myrec); } public void pauseApp() {} public void destroyApp(boolean unconditional){} } public void coiranandAction(Command c, Displayable d) { if (c == exitMidlet) { destroyApp (false) ,notifyDestroyed();  } } } / * * класс Rectangles определен в файле Rectangles.Java, */ import javax..microedition. Icdui ; public class Rectangles extends Canvas {  // конструктор public Rectangles(){ super();  } public void paint(Graphics g) { // устанавливается красный цвет g.setColor(255, 0,0); // рисуем первый прямоугольник g.fillRect(/*x*/ 15,/*у*/ 30,/*ширина*/ 15,/*высота*/ 20); // устанавливается зеленный цвет g.setColor(0, 255, 0); // рисуем второй прямоугольник g.fillRect(30, 30, 15, 45); // устанавливается синий цвет g.setColor(0, 0, 255); // рисуем третий прямоугольник g.fillRect(45, 30, 15, 60); // устанавливается синий цвет g.setColor(255, 0, 0); // рисуем прямоугольник с закругленными углами g.drawRoundRect(70, 30, 40, 40, 10, 10);  }  }

В этом примере также используются два класса - класс Main, играющий роль основного класса мидлета и класс Rectangles, где происходит отрисовка графики. Оба класса разделены на два файла Main.java и Rectangles.java. В классе Main создается объект класса Rectangles, добавляется команда выхода и показывается текущий экран. Класс Rectangles является подклассом класса Canvas. Прорисовка прямоугольников происходит в методе paint () класса Graphics.

g.setColor(255, 0, 0) ;

В этой строке кода устанавливается красный цвет для прямоугольника размером 15 на 20 пикселей, который рисуется с помощью метода fillRect ().

g.fillRect(/*x*/ 15,/*у*/30,/*ширина*/15,/*высота*/20);

Прямоугольник рисуется закрашенным в красный цвет. Дальше происходит прорисовка еще двух закрашенных в зеленый и синий цвет прямоугольников с размерами соответственно 15x45 и 15x60 пикселей.

В конце всего кода в классе Rectangles рисуется контур прямоугольника с закругленными углами. На рис. 7.4 изображен эмулятор телефона с четырьмя нарисованными прямоугольниками.



Рис. 7.4. Рисование четырех прямоугольников



Содержание раздела