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

         

Методы класса 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 показан эмулятор телефона, воссоздающий загруженное изображение, посмотрите, насколько больше экран телефона и как разместилось меньшее по размеру изображение на дисплее.

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