Благодаря Schermvlieger для спрашивать this вопрос о anddev.org,Оптимальное использование BitmapFactory.Options.inSampleSize скорости
Я просто копируют его вопрос не так, как никто ответил на другой сайт, и я также сталкиваюсь с той же проблемой.
Мне было интересно, что было бы оптимальным использованием BitmapFactory.Options.inSampleSize
относительно скорости отображения изображения.
В документации упоминается с использованием значений, которые являются степенью 2, поэтому я работаю с 2, 4, 8, 16 и т.д.
То, что я задаюсь вопросом о том, являются:
- Должен ли я ресэмплировать вниз до самого маленького размера, который по-прежнему больше разрешения экрана, или я должен делать выборку до размера, достаточного для того, чтобы избежать
OutOfMemoryError
? - Как вычислить максимальный размер изображения, которое все еще может отображаться без исчерпания памяти? Идет ли цветная глубина изображения, а также глубина дисплея?
- Эффективно отображать изображения с помощью двух механизмов (
BitmapFactory
для больших файлов,setImageURI()
для небольших). Я используюImageSwitcher
. - Помогло ли это создать
Bitmap
,BitmapFactory.Options
иinTempStorage
в начале приложения или создать их только на лету, при необходимости?
Когда вы говорите, что «масштабирование изображений во время рисования чрезвычайно дорого», это включает в себя options.inSampleSize? – kape123
inSampleSize используется для масштабирования изображений во время загрузки, а не во время рисования. Это очень хороший способ предварительного масштабирования изображений. –
Мы используем ARGB_8888, который производит очень туманное изображение на Samsung Galaxy Note 2, но он хорошо работал на другом устройстве, принеся его на ARGB_4444, сбой приложения на Samsung Galaxy Note 2 и Pad 3110 из-за outOfMemoryError. Не могли бы вы помочь нам разобраться в этом. –