BitmapFactory возвращает изображение большего размера, чем исходный код
Привет я создаю растровое изображение из png-изображения с именем image.png
. Изображение имеет размер 75 (ширина) х 92 (высота). Когда я запускаю этот код:
Bitmap bitmap = BitmapFactory.decodeResource(this.context.getResources(), R.drawable.image
Log.d("image", "height: " + bitmap.getHeight() + " width: " + bitmap.getWidth());
Логгер регистрирует:
DEBUG/image(3550): height: 138 width: 113
И изображение на экране больше, чем другие изображения, которые имеют размер 75 х 92. Что я могу сделать, чтобы android загрузил изображение с правильным размером?4 ответа:
Похоже, что плотность экрана на вашем устройстве отличается от плотности изображения.png был создан.
Если вы действительно хотите предотвратить масштабирование, вы можете попробовать одно из следующих действий:
Поместите изображение в res / drawable-nodpi (http://developer.android.com/guide/practices/screens_support.html#qualifiers)
Используйте ImageView.ScaleType.ЦЕНТР (http://developer.android.com/reference/android/widget/ImageView.ScaleType.html)
Только что нашел этот связанный вопрос на SO: Android: Как остановить Android 1.6+ от масштабирования изображений
Мое решение:
BitmapFactory.Options options = new BitmapFactory.Options(); options.inScaled = false; Bitmap bitmap = BitmapFactory.decodeResource(this.context.getResources(), R.drawable.image, options );