Android: как остановить Android 1.6+ от масштабирования изображений - PullRequest
1 голос
/ 04 ноября 2010

Я обновил свою сборку до версии Android 1.6, и теперь мои растровые изображения уменьшены на экранах высокой плотности. Я НЕ хочу этого поведения. Я дал этому выстрел:

http://blog.tomgibara.com/post/190539066/android-unscaled-bitmaps

но изображения по-прежнему масштабируются, т. Е. Если Я не установил их на определенную высоту и ширину. Если я использую wrap_content, они уменьшаются.

У меня есть загрузчик изображений, использующий немасштабированный растровый загрузчик для создания рисованного объекта, например:

Bitmap bm = UnscaledBitmapLoader.loadFromResource(imageBufferInputStream);
drawable = new BitmapDrawable(bm);

, который я позже назначу ImageView следующим образом:

imageView.setImageDrawable( copyBitmapDrawable( (BitmapDrawable) drawable) );

Ответы [ 4 ]

3 голосов
/ 04 ноября 2010

Чтобы изображение не масштабировалось при загрузке его из ресурса (например, с помощью BitmapFactory.decodeResource), вы должны найти его в res / drawable-nodpi вместо обычного drawable, drawable-ldpi и так далее.

2 голосов
/ 23 августа 2011

Использование

new BitmapDrawable(this.getResources(), bmp); 

вместо

 new BitmapDrawable(bmp);

должен решить проблему.

1 голос
/ 04 ноября 2010

Проблема заключается в переносе растрового изображения с Drawable. Drawable масштабирует Bitmap. Вместо использования Drawable присвойте Bitmap ImageView напрямую, используя imageView.setImageBitmap(Bitmap).

0 голосов
/ 04 ноября 2010

Использование ImageView.ScaleType . Константа CENTER преформ не масштабируется, так что я думаю, это то, что вы ищете.

Кстати, вы используете пиксели или провалы в качестве единиц измерения? Использование провалов (независимых от плотности пикселей) является средством стандартизации отображения в нескольких разрешениях. Вы найдете пару советов здесь .

...