J2ME в Netbeans (проблема с изображением GIF) - PullRequest
2 голосов
/ 04 января 2009

Я создаю приложение для навигации в помещении (предполагается, что пользователь может хранить карты для разных зданий в файловой системе телефона). Приложение запускается, прося пользователя выбрать карту для нужного здания. После того, как это было выбрано, файл анализатора будет использоваться для анализа и преобразования данных карты из файла. Пока это происходит, я создал экран ожидания с надписью «пожалуйста, подождите ...», а также выложил изображение загрузки / обработки, которое представляет собой рисунок. Но когда я запускаю это в эмуляторе Sun WTK, gif не меняется, он становится статичным изображением. Кстати, я использую Netbeans 6.1 для этого. Есть идеи? Большое спасибо.

Ответы [ 3 ]

3 голосов
/ 04 января 2009

Даже обработка изображений в формате gif не поддерживается на старых телефонах, как указано на форуме Nokia .

Однако статья в журнале Dr. Dobb's Journal предлагает решение «Отображение изображений GIF на мобильных телефонах J2ME» с использованием свободно доступного класса GifEncoder.java . Его порт J2ME доступен с той же страницы здесь .

2 голосов
/ 04 января 2009

Анимированные GIF-файлы не поддерживаются в MIDP по умолчанию, поэтому, если вы действительно хотите воспроизвести анимированный GIF-файл, вам нужно использовать MMAPI для этого. Я предлагаю вам разделить анимацию на отдельные файлы и сделать анимацию вручную. Это самый плохой способ.

Этот код позволяет вам играть анимированный GIF в конце

InputStream is = getClass().getResourceAsStream("/OceanFish.gif");
DataInputStream di = new DataInputStream(is);
StaticAnimation simage = StaticAnimation.createAnimation(di);

но опять же я бы не советовал, так как он не очень портативный.

0 голосов
/ 05 января 2009

Возможно, это не идеальное решение, но вы всегда можете извлечь кадры анимации gif на лист спрайтов в формате png, а затем использовать класс Sprite для обработки анимации. Это было бы намного более переносимо, поскольку класс Sprite является частью стандарта MIDP 2.

...