Должен ли я изменить размер растрового изображения перед добавлением в ImageView или позволить ImageView изменить размер растрового изображения? - PullRequest
9 голосов
/ 01 сентября 2011

У меня простой вопрос: нужно ли изменить размер большего растрового изображения перед добавлением в ImageView или позволить ImageView изменить размер растрового изображения?Как правильно относиться к производительности?

Спасибо

Ответы [ 4 ]

11 голосов
/ 01 сентября 2011

Рассмотрите возможность использования масштаба для ImageView, и не беспокойтесь об изменении размера. Вы можете масштабировать изображение как это, например:

image.setAdjustViewBounds(true);
image.setMaxHeight(50);
image.setMaxWidth(50);
image.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
1 голос
/ 09 ноября 2013

Вы можете сделать так:

ImageView imageView = (ImageView) findViewById(R.id.imageView);
        imageView.setAdjustViewBounds(true);
        imageView.setMaxHeight(imageView.getHeight());
        imageView.setMaxWidth(imageView.getWidth());
        imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
        imageView.setImageBitmap(BitmapFactory.decodeFile(picturePath));
1 голос
/ 01 сентября 2011

мы можем изменить размер существующего растрового изображения до любого размера, используя bitmap.createScaledBitmap, используя приведенный ниже код.

bmp=Bitmap.createScaledBitmap(bmp,destBitmapWith, destBitmapHeight,true);
1 голос
/ 01 сентября 2011

Чем больше изображение, тем больше его размер, я не думаю, что производительность действительно пострадает, но сохранит эффективность.

Вы также можете поместить изображения разных размеров в разные папки для разных разрешений:

res/drawable-mdpi/my_icon.png        // bitmap for medium density
res/drawable-hdpi/my_icon.png        // bitmap for high density
res/drawable-xhdpi/my_icon.png       // bitmap for extra high density

Поддержка экранов разных размеров

...