Я столкнулся со следующей проблемой. Когда какое-либо растровое изображение загружается из ресурсов приложением, работающим на Ice Cream Sandwich, оно, вероятно, будет отображаться неправильно, как если бы оно было декодировано в формат, отличный от текущего формата окна, без применения дизеринга. Однако и формат декодирования, и формат окна были явно установлены:
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inPreferredConfig = Bitmap.Config.RGBA_8888;
и
getWindow().setFormat(PixelFormat.RGBA_8888);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DITHER);
Вот скриншоты тестового приложения , взятые из этой статьи , работающего на эмуляторе с ICS 4.0.3 (дает те же результаты на HTC HD2):
RGBA_8888
(32 бита) формат окна , различные форматы декодирования растровых изображений:
RGB_565
(16 бит) формат окна , различные форматы декодирования растровых изображений:
Можно отметить несколько вещей:
RGB_565
; RGB_565
и форматом декодирования растрового изображения RGBA_8888
.Об этой проблеме также сообщалось в этих вопросах, но до сих пор нет решения в них:
Ужасное качество фонового изображения в Android
Вопрос в том, как работать со всеми этими форматами в ICS, а точнее, как сделать загрузку растровых изображений ICS в формате RGBA_8888
и как установить формат окна на RGBA_8888
, чтобы эти растровые изображения отображались правильно?