Я не хочу, чтобы Android автоматически изменял размер моего растрового изображения - PullRequest
7 голосов
/ 24 июля 2011

Я поместил несколько растровых изображений в res / drawable.

После того, как я загружаю растровые изображения с помощью BitmapFactory.decodeResource (), я обнаруживаю, что они автоматически меняются в соответствии с плотностью.

Это не то, что мне нужноЯ хочу, чтобы они сохранили свой оригинальный размер (размер в пикселях).

Что мне делать?

Ответы [ 4 ]

18 голосов
/ 24 июля 2011

Как уже было сказано в другом вопросе, использование папки drawable-nodpi предотвратит изменение размера ваших изображений в Android.

Кроме того, если вы хотите иметь несколько версий изображения для форматов hdpi и ldpi, но не хотите, чтобы система изменяла их размер (например, для разрешения в два разрешения), вы можете использовать следующий код, пока загрузка вашего bitmpap:

// ask the bitmap factory not to scale the loaded bitmaps
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inScaled = false;

// load the bitmap
Bitmap bitmap = BitmapFactory.decodeResource(ctx.getResources(), R.id.mybmp, opts);
5 голосов
/ 24 июля 2011

http://developer.android.com/guide/practices/screens_support.html

Если вы используете суффикс nodpi, система не будет автоматически масштабировать ваши изображения.Надеюсь, это поможет!

1 голос
/ 24 июля 2011

Если у вас есть отдельные изображения в hdpi, ldpi и mdpi, и вы используете ресурсы для доступа к этим изображениям, то вы не сможете многое сделать.

Если вы просто хотите, чтобы одно изображение былосохраните одну копию в папке mdpi и удалите остальные.

0 голосов
/ 24 июля 2011

Поместите ваши изображения в папку с именем drawable (без суффиксов ldpi, mdpi, hdpi и др.).Возможно, вам придется создать его самостоятельно (например, Eclipse не создает его автоматически).

После этого удалите ресурс drawable из других ваших папок drawable-что-то.

...