J2ME в Netbeans (проблема с изображением gif)

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


person CSFYPMAIL    schedule 03.01.2009    source источник


Ответы (3)


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

Однако в статье в журнале доктора Добба есть решение по теме «Отображение изображений GIF на мобильных телефонах J2ME. "с использованием свободно доступного класса GifEncoder.java. Его порт J2ME доступен на той же странице, здесь.

person rics    schedule 04.01.2009
comment
Я согласен, PNG в JavaME VM намного лучше поддерживаются, чем GIF. Например, Samsung E250 не выполняет рендеринг GIF в своем J2ME, но может выполнять PNG и JPEG (это из тестов, которые мы запускали в нашем приложении). - person David d C e Freitas; 14.12.2010

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

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

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

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

person Honza    schedule 03.01.2009

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

person Fostah    schedule 05.01.2009