Глубина цвета в Android

Я просто показал растровое изображение на галактике Samsung 10.2. Изображение было создано в фотошопе, показывая некоторые тонкие изменения от светло-красного до слегка более темного красного цвета, он выглядел идеально на моем ПК, но рендеринг на планшете показал несколько полос .

Я знаю, что это может быть вызвано недостаточной глубиной цвета … но я не знаю, какие у устройства Android есть глубина цвета. Определяет ли андроид минимальную глубину цвета? Является ли глубина цвета чем-то, что вы можете запросить более или менее во время выполнения? Это зависит только от производителя устройства?

Введите описание изображения здесь

Это идеальное чтение: качество растрового изображения, обвязка и сглаживание Romain Guy.

Отвечая на ваши вопросы:

Определяет ли андроид минимальную глубину цвета?

Android <2.3 загружает растровые изображения с глубиной цвета 16 бит по умолчанию. Android> = 2.3 загружает битмапы с 32 битами по умолчанию. Цитируя Ромен Гай из данной статьи:

Гораздо лучшее решение – просто отобразить 32-битные растровые изображения на 32-битных поверхностях, которые по умолчанию имеет Android 2.3.

Минимум для битмапов – 8 бит, Bitmap.Config.ALPHA_8 , но на 99% вы не должны использовать это, а скорее Bitmap.Config.ARGB_8888 .

Установите Window на 32 бита ( Bitmap.Config.ARGB_8888 ) и декодируйте растровые изображения с 32 битами ( PixelFormat.RGBA_8888 ). Как это сделать, ниже.

Является ли глубина цвета чем-то, что вы можете запросить более или менее во время выполнения? Это зависит только от производителя устройства?

Вы можете установить глубину цвета Window или Bitmap в любое время во время выполнения.

  • Для Window с setFormat() и PixelFormat .
  • Для Bitmap с PixelFormat .