Android Bitmap调整大小

时间:2013-01-27 11:34:47

标签: java android android-layout

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

使用

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

Bitmap resizedbitmap = Bitmap.createScaledBitmap(bitmap, 200, 200, true);

3 个答案:

答案 0 :(得分:13)

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

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

这将缩放提供的w和h中的位图。 这可能会扭曲位图。

根据您的需要使用。

答案 1 :(得分:13)

  

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

这取决于您需要的灵活性:

options.inSampleSize = N;表示您将获得比原始图像小N倍的图像。基本上,解码器将每N个像素读取1个像素。

如果您的位图不需要特定大小,请使用该选项,但为了使用更少的内存,您需要将其缩小。这对于阅读大图像特别有用。

另一方面,

Bitmap.createScaledBitmap为您提供更多控制:您可以准确指出位图的最终尺寸,...

最好是使用两种方法的组合:

  1. 确定可用于有效解码源图像的inSampleSize的最大值(使得解码图像仍然大于您需要的最终尺寸)
  2. 使用Bitmap.createScaledBitmap精确控制最终尺寸

答案 2 :(得分:-1)

createScaledBitmap方法生成低质量图像

从此帖bitmap image quality

中获取建议