Автор неизвестен - Платформа J2Me

Тут можно читать онлайн Автор неизвестен - Платформа J2Me - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

Автор неизвестен - Платформа J2Me краткое содержание

Платформа J2Me - описание и краткое содержание, автор Автор неизвестен, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Эта книга научит вас, как разрабатывать программное обеспечение для платформы J2ME компании «Sun Microsystems». Эта книга придерживается стиля учебного пособия, это не справочное руководство.

Цель — дать вам твердую основу в понятиях и техниках, которая даст вам возможность решиться на самостоятельную разработку качественных приложений.

Платформа J2Me - читать онлайн бесплатно полную версию (весь текст целиком)

Платформа J2Me - читать книгу онлайн бесплатно, автор Автор неизвестен
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

// изменяемом объекте Image, который имеет свой собственный

// внеэкранный Graphics. Мы сейчас создаем изображение в

// конструкторе, вместо метода paint (),

//так что оно создается только один раз. try

}

image = Image.createlraage("/bottle80x80.png");

}

catch (lOException ioe)

{

System.out.println(ioe.getMessage()); ioe.printStackTrace();

}

addCommand(back); setCommandListener(this); display.setCurrent (this);

}

protected void paintClipRect(Graphics g)

{

int clipX = g.getClipX{};

int clipY = g.getClipY ();

int clipH = g.getClipHeight();

int clipW = g.getClipWidth ();

int color = g.getColor();

g. setColor(WHITE);

g. fillRecc(clipX, clipY, clipW, clipH);

g. setColor (color);

/**

Рисует изображение на видимом Canvas этого объекта.

*/ public void paint(Graphics g)

Graphics originalG = null; int width = getWidth ();

int height = getHeight ();

if (image == null)

{

return; 1

// Мы все равно нуждаемся в двойной буферизации операций

// рисования, которые очищают графику Canvas, if (!autoDoubleBuffered)

{

// Сохраняет первоначальный графический контекст и использует

// внеэкранный Graphics из Image для очистки отсекаемого

// прямоугольника. originalG = g; g = image.getGraphics ();

paintClipRect (g);

}

else 1

// Нарисуйте фон с первоначальным Graphics, переданным в него. paintClipRect(g);

{

// Нам не нужна двойная буферизация вызова отображения Image.

// Вызов этого метода рисует изображение во

// внеэкранном Graphics объекта Image, копируя затем его

// содержимое в контекст Graphics устройства неявно.

g. drawlmage(image, 0, 0, Graphics.TOP I Graphics.LEFT);

public void commandAction(Command c, Displayable d)

{

if (c == back)

GraphicsDemo.getInstance(). display!);

}

}

}

Процедура довольно прямолинейна. Вы должны сначала создать объект изображения, что вы сделали, когда переслали изображение в компонент высокоуровневого пользовательского интерфейса MIDP. Программа вызывает Image.createlmage(String name) для создания объекта Image. Этот метод определяет местоположение файла изображения, чье имя пути указано относительно директории res/ проекта.

Затем вы пересылаете изображение в объект Graphics, указывая точку привязки и местоположение (х, у) точки привязки. После этого программа просто вызывает метод Graphics.drawlmage() для отображения изображения. Реализация MIDP пересылает объект Graphics в метод приложения paint (Graphics g). Он представляет физический графический контекст устройства. То есть выполнение Graphics.drawlmage() в контексте Graphics, пересланного в ваш метод Canvas, paint (Graphics g), выражается в результате в визуализации на дисплее устройства.

Класс Image имеет четыре версии перегрузки метода createlmage(). В таблице 6.7 показаны все четыре версии. Вы уже видели третью версию, эта версия единственная, которая производит изменяемый объект изображения. Это вам необходимо для записи во внеэкранном контексте Graphics объекта Image.

Таблица 6.7.Методы класса Image для создания объектов изображений

Название метода изображения — Описание

static Image createlmage (byte [] imageData, int imageOffset, int imageLength) — Создает изменяемое изображение из указанных данных изображения, беря изображения начиная с указанных смещения и длины

static Image createlmage (Image source) — Создает изменяемую копию указанного изображения

static Image createlmage (int width, int height) — Создает новое изменяемое изображение с указанной шириной и длиной

static Image createlmage (String name) — Создает изменяемый объект изображения из изображения с путем к ресурсам, указанным в файле JAR набора МID-летов

Другие версии создают изменяемые объекты Image. Каждая версия дает вам возможность создавать изображение из различных источников. Первая версия создает изображение из необработанных двоичных данных. Вторая создает изображение из другого объекта изображения. Четвертая версия загружает изображение из файла JAR набора MID-летов. Строковый аргумент указывает имя файла ресурса в файле JAR.

В листинге 6.10 демонстрируется отображение реального изображения PNG. Вместо рисования изображений — рисунков, хранящихся как изображения в формате PNG, — вы можете нарисовать любую «картинку», которую вы сможете создать с помощью низкоуровневых процедур графического рисования, предоставляемых в классе Graphics. Вы можете рисовать геометрические фигуры или отдельные пиксели, заполнять части дисплея и так далее, чтобы создать изображение — рисунок — по, своему желанию.

Двойная буферизация изображений. Изображения подвергаются двойной буферизации неявно. Поэтому вам никогда не придется самостоятельно выполнять двойную буферизацию. Пример, описанный в листинге 6.10, раскрывает причину этого.

Метод paint () создает объект Image из файла ресурса, который представляет изображение PNG для отображения. Но этот объект Image уже имеет связанный с ним контекст Graphics, являющийся внеэкранным Graphics. Поэтому, когда метод paint () выполняет следующий оператор, он копирует содержимое контекста Graphics объекта Image — фактические биты, которые составляют изображение, — в графический контекст дисплея:

g. drawlmage (image, О, О, Graphics.TOP I Graphics.LEFT);

Таким образом, двойная буферизация изображений осуществляется автоматически.

Хотя при рисовании изображения двойная буферизация осуществляется автоматически, очистка отсекаемого прямоугольника, то есть рисование фона Canvas, — нет. Посмотрите внимательнее на метод paint (Graphics д)в листинге 6.10, и вы увидите, что он все еще проверяет, не осуществляет ли реализация автоматическую двойную буферизацию. Если нет, метод paint (Graphics g) использует внеэкранный графический контекст для очистки отсекаемого прямоугольника.

Этот код немного отличается от кода, описанного в листинге 6.9, в этом коде нет явной ссылки на внеэкранный Graphics. Причина этого заключается в том, что объект Image уже предоставил внеэкранную графику. Метод paint (Graphics g) может просто использовать ее как внеэкранный Graphics, необходимый для очистки отсекаемого прямоугольника.

Выводы по главе

Два класса в пакете javax.microedition.lcdui формируют определение низкоуровневого программного интерфейса приложения в MIDP: класс Graphics и класс Canvas. Низкоуровневый API MIDP дает вашему приложению возможность получать информацию о событиях низкого уровня, которые недоступны для компонентов высокоуровневого программного интерфейса приложения. Объекты Canvas могут получать информацию о событиях нажатия кнопки или движения указателя. Объекты Canvas являются объектами Displayable. По этой причине они все еще могут выполнять обработку команд, как и другие компоненты Displayable.

Чтобы использовать низкоуровневый API, вы должны создать подкласс Canvas. Затем вы должны описать метод paint (Graphics g) в вашем подклассе, для того чтобы создать видимый внешний вид его экземпляров. Метод подкласса paint (Graphics g) определяет этот видимый внешний вид.

Метод paint (Graphics g) рисует внешний вид компонента Canvas с помощью графического контекста, определенного классом Graphics. Класс Graphics поддерживает рисование и заполнение базовых геометрических фигур, таких, как линии, дуги, прямоугольники, текст и так далее. Он также поддерживает рисование в цвете. Другими поддерживаемыми свойствами являются выбор шрифта для рисования текста, отсечение и перенос начала координат Graphics.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Автор неизвестен читать все книги автора по порядку

Автор неизвестен - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Платформа J2Me отзывы


Отзывы читателей о книге Платформа J2Me, автор: Автор неизвестен. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x