ГлавнаяНеобходимые приложенияНастройка приложенийГлавный классВысокоуровневое программированиеНизкоуровневое программированиеКласс GameCanvasРисование. Класс GraphicsИзображения. Класс ImageОбработка нажатийФайл манифестаСохранения. Работа с RecordStoreРабота с таймеромПолезные ссылкиОб автореСайт ФПМиКТСтуденческий сайт
Сайт о Java ME

Низкоуровневое программирование. Работа с изображениями.

Немного отступим от процесса вывода на экран и поговорим о том, как загружать изображения. Для начала, создайте в папке с проектом новый каталог и назовите его, например, Graph. Скопируйте в него графический файл формата png (в моем случае это image.png).

Теперь в окне "Проекты" ("Projects" в SunMESDK, если этого окна нет, откройте его через "Window" - "Projects") щелкните правой кнопкой мыши на строке "ресурсы" ("Resourse") вашего проекта и выбирете там "добавить папку" ("Add folder") и выберете созданную нами папку Graph. Теперь к элементам этой папки можно обращаться как к корню каталога.

Старайтесь создавать изображения с 8-ми битной глубиной цвета. Это значительно ускорит рисование в программе.

Теперь объявляем объект Image (Image img;), для этого в конструкторе класса Canva дописываем такие строки:
try {
	img = Image.createImage("/image.png");
} catch (IOException ex) {
	ex.printStackTrace();
}

Слэш перед именем файла обязателен. Что интересно, если его убрать, то на стандартном эмуляторе программа запускаться будет, но, скорее всего, не будет работать на реальном телефоне.

Имена файлов и папок регистрозависимы. image.png, Image.png, image.Png - это не одно и то же.

У метода Image есть еще один способ загрузки изображения:
Image createImage(Image image, int x, int y, int width, int height, int transform)
  • image - объект класса Image
  • x, y - координаты начала
  • width, height - ширина и высота
  • transform - трансформация изображения. Может принимать следущие значения:
    • Sprite.TRANS_NONE - без трансформации
    • Sprite.TRANS_ROT90, Sprite.TRANS_ROT180, Sprite.TRANS_ROT270 - поворачивает изображение по часовой стрелке на 90, 180 и 270 градусов соответственно
    • Sprite.TRANS_MIRROR - зеркально отажает изображение
    • Sprite.TRANS_MIRROR_ROT90, Sprite.TRANS_MIRROR_ROT180, Sprite.TRANS_MIRROR_ROT270 - зеркально отражает изображение и поворачивает.
Назад	Далее