Я пытаюсь загрузить изображение ресурса jpeg в растровое изображение формата ARGB_8888:
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inPreferredConfig = Bitmap.Config.ARGB_8888;
Bitmap b = BitmapFactory.decodeResource(resources, resId, opts);
Log.d("test", b.getConfig().toString());
Здесь resId — идентификатор ресурса изображения в формате jpeg. И результат "RGB_565". Пробовал это в эмуляторах андроида 2.2 и 2.3.
Документы «inPreferredConfig» говорят:
Если это не нуль, декодер попытается декодировать в эту внутреннюю конфигурацию. Если он равен нулю или запрос не может быть выполнен, декодер попытается выбрать наиболее подходящую конфигурацию на основе глубины экрана системы и характеристик исходного изображения, таких как наличие попиксельного альфа-канала (требуется конфигурация, которая также делает). По умолчанию изображения загружаются с конфигурацией ARGB_8888.
Значит, я столкнулся со случаем «запрос не может быть выполнен»? :) Но я, честно говоря, не понимаю, насколько сложно декодировать RGB_565 в ARGB_8888.
Поэтому я подумал, может быть, я делаю неправильно или это ошибка в Android...