我应该在添加到ImageView之前调整位图大小还是让ImageView调整位图大小?

时间:2011-09-01 10:43:12

标签: android performance bitmap resize imageview

我有一个简单的问题:我之前应该调整更大的位图吗? 添加到ImageView或让ImageView调整位图大小? 关于性能,正确的方法是什么?

由于

4 个答案:

答案 0 :(得分:11)

考虑对ImageView使用缩放,不要为调整大小而烦恼。您可以像这样缩放图像,例如:

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

答案 1 :(得分:1)

图像越大,尺寸越大,我认为性能不会受到影响但会保持效率。

您还可以在不同文件夹中放置不同尺寸的图像以获得不同的分辨率:

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

Supporting different size screens

答案 2 :(得分:1)

我们可以使用bitmap.createScaledBitmap将现有位图的大小调整为任意大小。使用下面的代码。

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

答案 3 :(得分:1)

你可以这样做:

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