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

Методы класса Image




Все методы класса Image служат для загрузки изображений из файлов, ресурсов, потоков, а в некоторых методах можно задавать размеры и трансформацию изображений. Проанализируем основные методы класса Image.

  •  static Image createlmage(byte[] imageData, int imageOff-set, int imageLength) -загружает изображение учитывая смещение и длину f1 байтах;
  •  static Image createlmage (Image source) - загружает изображение из файла;
  •  static Image createlmage(Image image, int x, int y, int width, int height, int transform) - загружает изображение в заданное место, определенное координатами, с возможностью трансформации изображения. Параметр transform устанавливает необходимую трансформацию с помощью класса Sprite и константных значений:
  •  Sprite. TRANS_NONE - изображение копируется без трансформации;
  •  Sprite.TRANS_ROT90 - трансформирует изображение по часовой стрелке на 90°;
  •  Sprite.TRANS_ROT180- трансформирует изображение по часовой стрелке на 180°;
  •  Sprite.TRANS_ROT270 - трансформирует изображение по часовой стрелке на 270°;
  •  static Image createlmage (InputStream stream) -загружает изображение из потока;
  •  static Image createlmage(int width, int height) -загружает изображение в заданные размеры;
  •  static Image createlmage (String name) - загружает изображение из ресурса;
  •  static Image createRGBImage(int[] rgb, int width, int height, boolean processAlpha) - загружает изображение, учитывая цветовую компоненту ARGB;
  •  Graphics getGraphics () - создает графический объект для представления изображения;
  •  int getHeight () - получает высоту изображения;
  •  int getwidth () — получает ширину изображения.


В листинге 6.11 происходит загрузка изображения в приложение, но без использования объекта класса ImageItem, который использовался при рассмотрений примера в листинге 6.6 из раздела 6.8. В листинге 6.6 применялась ссылка на объект класса Image, в этом примере объект классу Image используется напрямую

/** Листинг 6.11 Класс Image  */ import javax.microedition.midlet.*;  import javax.microedition.Icdui.*; public class  MainClassImage extends MIDlet implements CommandListener  { // команда выхода из приложения private Command exitMidlet = new Command("Выход", Command.EXIT, 1) ; // объект класса Form, private Form myform = new Form("Класс Image"); // объект mydisplay представляет экран телефона private Display mydisplay; public MainClassImage()        { mydisplay = Display.getDisplay(this);  } public void startApp() { // перехватываем исключительную ситуацию try { // загрузка изображения Image im = Image.createlmage("Ygornakov.png"); // добавляем загружённый файл в форму myform.append(im); } catch(Java.io.IOException exp{ } // Установка обработчика событий для Form myform.addCommand(exitMidlet); myform.setCommandListener(this); // Отразить текущий дисплей mydisplay .s'etCurrent (myform) ;  } public void pauseApp() {} public void destroyApp(boolean unconditional) {} public void сommandAction(Command c, Displayable*d) { // Выход из приложения if (с == exitMidlet)  { destroyApp(false); notifyDestroyedf);  } } }

На рис. 6.13 показан эмулятор телефона, воссоздающий загруженное изображение, посмотрите, насколько больше экран телефона и как разместилось меньшее по размеру изображение на дисплее.



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