Похоже, что BitmapFactory.decodeResource() игнорирует inScaled, когда inJustDecodeBounds также является «истинным».BitmapFactory.decodeResource() игнорирование inScaled
В этом надреза кода:
Resources res = getResources();
DisplayMetrics metrics = res.getDisplayMetrics();
BitmapFactory.Options options = new BitmapFactory.Options();
options.inScaled = true;
options.inDensity = DisplayMetrics.DENSITY_HIGH; // resolution of bitmap in resources
options.inTargetDensity = metrics.densityDpi; // screen resolution
options.inJustDecodeBounds = true;
Bitmap bitmap = BitmapFactory.decodeResource (res, srcId, options);
logD ("IVH decodeBitmapResource.1: " + options.outWidth + "," + options.outHeight + " - " + srcId);
options.inJustDecodeBounds = false;
bitmap = BitmapFactory.decodeResource (getResources(), srcId, options);
logD ("IVH decodeBitmapResource.2: " + options.outWidth + "," + options.outHeight + " - " + srcId);
я получаю следующий результат в моем файле журнала:
IVH decodeBitmapResource.1: 420,747 - 2130837613
IVH decodeBitmapResource.2: 840,1494 - 2130837613
Все, что я делал, было изменение inJustDecodeBounds от истинного на ложное. Что мне не хватает?
Вы говорите «предположительно», но я не вижу его в джавадоке. Так что это либо ошибка в документах, либо ошибка на платформе, но мы не знаем, какой из них. –
Хорошо, позвольте мне надеть мою «саркастичную» шляпу. На мой взгляд, многие из документации Google от Google оставляют много смысловых деталей для вашего воображения. –
Вы правы. Вот почему они позволяют вам регистрировать ошибки: https://code.google.com/p/android/issues/entry?template=Developer%20Documentation –