Я не хочу, чтобы Android автоматически изменял размер моего растрового изображения

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

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

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

Что я должен делать?

4 ответа

Как было сказано в другом вопросе, использование папки 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);

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

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

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

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

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

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

Другие вопросы по тегам