BitmapFactory часто вызывает исключение OutOfMemoryException, и я боюсь, что я никогда не обнаруживал никаких обходных путей.Кажется, что он делает свое собственное управление памятью, а иногда он действительно не способен анализировать изображение.В нескольких приложениях, над которыми я работал, которые должны были интенсивно работать с изображениями, мне просто нужно было поймать исключение, а затем оставить пустые места в пользовательском интерфейсе, когда я не мог проанализировать изображение.Иногда, если вы попробуете позже, эти изображения будут анализироваться, предположительно, когда состояние внутренней памяти BitmapFactory работает лучше.
Когда я работал над приложением J2ME, я пытался найти чистый Java с открытым исходным кодом JPEGпарсер, чтобы я мог использовать его на телефонах, которые не имеют встроенной поддержки JPEG.Оказывается, такую вещь трудно найти, и самое близкое, что я мог найти, было похоронено в недрах источника Затмения.Я смог взять этот источник, де-Эклипсифицировать его и попробовать.У него действительно было преимущество чтения построчно (хотя я не уверен, как это было бы с JPEG с прогрессивной разверткой), но это было смехотворно медленно на наших устройствах J2ME (особенно потому, что они были в основном младшими)поэтому мы не использовали его ни для чего.