2016-09-25 3 views
0

Я использую эмулятор Nexus 5X с плотностью 420 dpi и размером экрана 1080x1920 px. Я загружаю битмап исходного размера в ImageView. На диске размер растрового изображения составляет 1,3 МБ и 1280x851 px. Размеры моего изображения: ширина: полный экран, высота: полный экран. Мое изображение имеет 32-битную глубину цвета = 4 байта на пиксель. Я вычислил ожидаемый размер в памяти как 1080x1920x4 = 8.29 MB.Android: размер растрового изображения

Когда я запускаю свой код и загружаю свое изображение, размер его составляет около 30 МБ. В чем причина этого и как я могу настроить свои вычисления, чтобы получить правильную оценку? Я, конечно, знаю методы загрузки уменьшенного изображения в маленький контейнер, но я пытаюсь выяснить, как рассчитать размер полного изображения.

Благодаря

+1

«На диске» - где именно у вас есть этот файл в вашем проекте? Или вы загружаете изображение с помощью других средств (например, из файла, с веб-адреса)? – CommonsWare

+0

Внутри drawable folder.I знаю, что лучше избегать изображений с высоким разрешением внутри доступных папок, но я пытаюсь найти правильный расчет. Я загружаю изображение через setImageResource (resId) – Ozzz

ответ

4

Я подсчитал, ожидаемый размер в памяти как 1080x1920x4 = 8,29 МБ.

Размер экрана здесь не имеет значения.

res/drawable/ - старый синоним для res/drawable-mdpi/. Вы указываете, что ваше изображение предназначено для устройств -mdpi (~ 160 точек на дюйм) и что оно должно быть отбираться по образцу для устройств с более высокой плотностью (и сбрасывается на выбор для устройств -ldpi).

A Nexus 5X классифицируется как устройство -xxhdpi (~ 480 dpi). Это означает, что каждый пиксель исходного изображения должен отображаться в 9 пикселей в изображении с высоким разрешением (480/160 = 3 на каждой оси). 1280 x 851 = 1089280 пикселей * 9 коэффициент масштабирования * 4 байта/пиксель = 39214080 байт = 37,4 МБ.

+0

Прохладный, спасибо большое – Ozzz

+0

Спасибо! Ты мне очень помог – emaleavil

+0

мой размер битмаапа доходит до h: 3024 и w: 4032, в галактическом крае 7, значит ли это 3024 * 4032 * 4 байта? –

Смежные вопросы