У меня простой вопрос: нужно ли изменить размер большего растрового изображения перед добавлением в ImageView или позволить ImageView изменить размер растрового изображения?Как правильно относиться к производительности?
Спасибо
Рассмотрите возможность использования масштаба для ImageView, и не беспокойтесь об изменении размера. Вы можете масштабировать изображение как это, например:
image.setAdjustViewBounds(true); image.setMaxHeight(50); image.setMaxWidth(50); image.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
Вы можете сделать так:
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);
Чем больше изображение, тем больше его размер, я не думаю, что производительность действительно пострадает, но сохранит эффективность.
Вы также можете поместить изображения разных размеров в разные папки для разных разрешений:
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
Поддержка экранов разных размеров