ImageDecoder против BitmapFactory
С Android Pie доступен новый класс для обработки растровых изображений и операций рисования. Ранее я использовал BitmapFactory в своем большинстве приложений для обработки растровых операций.
Мой вопрос
Должен ли я начать использовать ImageDecoder? Как ImageDecoder лучше, чем BitmapFactory?
дано что
"Класс ImageDecoder, который предоставляет модернизированный подход для декодирования изображений"
но официальный документ не говорит об этом много
Если кто-то использовал этот класс, можете объяснить, что будет преимуществом использования этого класса ImageDecoder?
вот официальная документация где я его нашел
2 ответа
Новый ImageDecoder
API гораздо более мощный и поддерживает множество различных типов. Он может обрабатывать активы, GIF-файлы, ресурсы, Drawables и многое другое. Вы можете передать это много различных типов, и он позаботится о преобразовании их в Drawables
или же Bitmaps
для тебя.
Вот несколько советов, с которых можно начать:
На данный момент ImageDecoder находится на стадии бета-версии, в нем всего 19 методов, из которых 7 являются статическими, но мощными. ImageDecoder может декодировать изображение из ByteBuffer, файла или Uri в растровое изображение или Drawable. Это очень хорошо, что они также добавили поддержку для декодирования анимированных GIF-файлов и изображений WebP. Эти анимированные изображения будут иметь тип AnimatedImageDrawable, который можно воспроизвести с помощью метода start() в любое время, когда вы захотите сыграть в GIF-игру с милой кошкой. Вы также можете очень легко выполнить постобработку, маскирование, обработку ошибок, обрезку и масштабирование, что действительно удивительно.
Мое предложение
В настоящее время он появляется только в среде Framework, поэтому мы можем использовать его только на устройствах под управлением P, поэтому мой личный совет - просто дождаться официального релиза и проверить, что они предлагают для предыдущей версии, так как в официальной версии они не упоминаются. документ.