安卓位图调整大小

6
什么是调整位图大小的最佳方法?
使用

options.inSampleSize = 2;
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.mandy_moore, options);

或者

Bitmap resizedbitmap = Bitmap.createScaledBitmap(bitmap, 200, 200, true);
3个回答

13

使用此方法创建采样图像,保持原始图像的纵横比。这是调整大小的最佳方式。

options.inSampleSize = 2;
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.mandy_moore, options);
Bitmap resizedbitmap = Bitmap.createScaledBitmap(bitmap, 200, 200, true);

这将按提供的宽度和高度缩放位图。

这可能会扭曲位图。

根据您的需求使用。


@Vincent Mimoun-Prat,有什么办法可以在缩小位图尺寸的同时保持其质量吗? - pallavi

13
什么是调整位图大小的最佳方法?
这要取决于您需要的灵活性: options.inSampleSize = N; 表示您将获得比原始图像小N倍的图像。 基本上,解码器将每N个像素读取1个像素。
如果您不需要特定大小的位图但需要使其变小以使用更少的内存,则使用该选项非常有用。这对于阅读大型图像尤其有用。
另一方面,Bitmap.createScaledBitmap 提供更多控制:您可以精确指定位图的最终尺寸,...
最好的方法是同时使用两种方法:
1.确定您可以使用的inSampleSize的最大值来有效地解码源图像(使得解码后的图像仍比所需的最终大小大) 2.使用Bitmap.createScaledBitmap来精确控制结果大小

-1

方法createScaledBitmap生成的图片质量很低。

参考本帖位图图片质量中的建议。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接