Класс Image
При рассмотрении класса ImageItem мы уже использовали объекты класса Image, но тогда был рассмотрен только один метод и способ работы с классом Image. В этом разделе вы более подробно познакомитесь с этим классом. Класс Image необходим для загрузки и хранения изображений в формате PNG. Чаще всего загружаемые изображения находятся в рабочем каталоге приложения. Но могут находиться и где угодно, надо только правильно указать путь местонахождения для загрузки.
При упаковке приложения в JAR-файл, все имеющиеся изображения автоматически копируются в архив, и при работе программы на телефоне, загрузка уже осуществляется из JAR-файла. Загружаемые изображения могут использоваться во время работы с классами Alert, Choice, ChoiceGroup, Form, ImageItem и Graphics. Качество воспроизведения изображения на экране всецело зависит от возможностей используемого телефона. Если изображение больше фактического размера дисплея, то сервис телефона организует прокрутку изображения и если это не входит в ваши планы, то следует придерживаться минимальных размеров ширины и высоты при создании изображений.
Методы класса 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 используется напрямую.