Android Drawable vs Asset при загрузке изображения

Я разработчик Android из Кореи

В моем проекте есть функции по загрузке большого количества огромного растрового изображения (около 2000 х 1,500 пикселей)

У меня были некоторые эксперименты, чтобы сравнить временную сложность и сложность пространства между Asset и Drawable

По результату Asset лучше, чем извлекаемый в сложности пространства.

Когда я загружаю огромные изображения с помощью drawable, мое приложение разбивается на OutOfMemoryException: размер растрового изображения превышает бюджет VM

Но когда я загружаю огромные изображения с помощью Asset, он отлично работает!

Кто-нибудь знает причину, почему это произошло?

Или Кто-нибудь знает о том, как Drawable работает в платформе Android? шаг за шагом.

Пожалуйста помоги.

Спасибо за чтение.

Если вы передаете ресурс Uri на что-то вроде ImageView , инфраструктура будет использовать BitmapFactory для потоковой передачи с дискретизированной версией образа. Это метод, который он использует под капотом.

Drawable с не используют эту технику по соображениям производительности. Обычно не ожидается, что огромные изображения будут сохранены как Drawable s, а Drawable загрузка происходит многократно по жизненному циклу вашего приложения, поэтому они полностью передаются с диска и кэшируются в памяти.

Intereting Posts
Получать события календаря Google Start and End Times с помощью google-java-api-client в Android Неверный размер элементов в списке слоев на прелелипополе Сохранение и восстановление фотографий и видео в Parse (Android) Android инициализирует контекст openGL2.0 с помощью EGL Перемещение между простыми действиями Как извлечь значения из пакета в Android Фрагменты и проблемы с вращающимся экраном Извлечение данных из pdf417, таких как Drivers License Почему важно устанавливать полезную нагрузку разработчика с помощью биллинга в приложении? Сломанная труба при попытке загрузить большое обновление файла 2 Какое исключение вызывает потеря интернет-соединения при получении данных с сервера? Android – создание группы по wifi direct p2p для нескольких устройств Список ключевых слов «noinspection» в Android Studio Сетевой вызов по истечении времени ожидания Java.lang.RuntimeException: Parcel android.os.Parcel: Unmarshalling неизвестный тип кода