Должен ли я изменить размер растрового изображения перед добавлением в ImageView или позволить ImageView изменить размер растрового изображения?

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

благодаря

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

 image.setAdjustViewBounds(true); image.setMaxHeight(50); image.setMaxWidth(50); image.setScaleType(ImageView.ScaleType.CENTER_INSIDE); 

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

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

 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 

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

Вы можете сделать следующее:

 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)); 

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

 bmp=Bitmap.createScaledBitmap(bmp,destBitmapWith, destBitmapHeight,true);