Как измерить или оценить размер растрового изображения в версиях Android, которые не поддерживают bitmap.getByteCount () - PullRequest
0 голосов
/ 01 февраля 2012

Я недавно следовал советам Googles по растровому кэшированию в Android и добавил свой собственный LruCache из библиотеки поддержки. LruCache работает лучше всего, если размер изображения в байтах известен кешу.

Проблема в том, что getByteCount для растровых изображений доступен только с Android API уровня 11.

Как бы вы предположили размер растрового изображения в памяти?

Ответы [ 2 ]

5 голосов
/ 25 июля 2012

Из исходного кода android.graphics.Bitmap:

public final int getByteCount() {
        // int result permits bitmaps up to 46,340 x 46,340
        return getRowBytes() * getHeight();
    }

Оба getRowBytes() и getHeight() относятся к уровню API 1, поэтому вы можете реализовать свой собственный getByteCount() для всех версийAndroid.На первый взгляд кажется, что getByteCount() был добавлен только для удобства.

2 голосов
/ 01 февраля 2012

Зависит от используемого Bitmap.Config , не так ли?ARGB_8888 - это должно быть где-то около ширины * высоты * 4 байта без упаковки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...