Я думаю, проблема в одной из следующих причин:
1. Название ресурса:
Имена ресурсов чувствительны к регистру; например, / ellen-png.png - это не тот же ресурс, что и / ellen-png.PNG или любой другой вариант.
2.Format:
Единственный формат, который должен поддерживаться, это png. Некоторые телефоны могут поддерживать другие форматы, такие как:
- Формат обмена графиками (GIF)
- Объединенная группа экспертов по фотографии (JPEG, JPG)
- Windows или OS / 2 Bitmap (BMP)
- Тег Формат файла изображения (TIF)
- Растровое изображение PC Paintbrush (PCX)
- Необработанные данные PCM со знаком (RAW)
Но это зависит от устройства, и если вы хотите быть максимально кроссплатформенным, просто используйте pngs:
В 1999 году, когда Sun Microsystems разработала спецификацию платформы J2ME и поддерживающие ее API, PNG был выбран в качестве формата изображения по умолчанию из-за его графических возможностей, небольшого размера файла и того, что он не обременен патентными проблемами.
Чтобы определить, обрабатывает ли J2ME определенный формат мультимедиа, вы вызываете метод getSupportedContentTypes . Этот метод возвращает строковый массив поддерживаемых типов мультимедиа и включает форматы аудио и видео, а также форматы изображений. Строки представляют эту информацию в формате MIME-типа. Например, чтобы проверить поддержку GIF, вы сканируете этот массив в поисках строки GIF-MIME-типа. Если есть совпадение, то реализация J2ME телефона поддерживает собственное отображение файлов GIF. Этот фрагмент кода может использоваться для этой цели:
private String mediaTypes[];
private final String GIF_MIME_TYPE = "image/gif";
private boolean gifSupported;
// Get the media types to check for support of GIF file display
mediaTypes = Manager.getSupportedContentTypes(null);
int count = mediaTypes.length;
// Check list for GIF MIME type; set support flag if present
gifSupported = false;
for (int i = 0; i < count; i++) {
if (mediaTypes[i] == GIF_MIME_TYPE)
gifSupported = true;
} // end for
Если вы хотите использовать специальный формат, вы можете использовать специальные декодеры для декодирования изображения из неподдерживаемого формата.
createImage бросает java.io.IOException , если ресурс не существует (особенно неправильное имя ресурса), данные не могут быть загружены, или данные изображения не могут быть декодированы. Поэтому, если вы ловите это исключение, проверяйте каждый случай.
3.Size:
Обратите внимание, что размеры файлов JAR, которые могут загружать конкретные устройства, зависят от множества факторов, включая ограничения, налагаемые производителями и операторами мобильных телефонов, или даже доступную конфигурацию памяти на конкретном устройстве. Размеры файлов изображений должны быть в диапазоне от 9,1 Кбайт для GIF до 69,5 Кбайт для TIF. Конечно, поскольку вы, вероятно, хотите сделать их как можно меньше, вы можете попробовать для этого инструмент, подобный pngcrush . Его основная цель - уменьшить размер потока данных PNG IDAT, пробуя различные уровни сжатия и методы фильтрации PNG.
Рекомендации:
SDN FAQ - Какие типы изображений поддерживает MIDP?
gamedev.net - Форматы изображений в J2ME
drdobbs.com - Отображение изображений GIF на мобильных телефонах J2ME