调整位图大小的最佳方法是什么?
使用
options.inSampleSize = 2;
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.mandy_moore, options);
或
Bitmap resizedbitmap = Bitmap.createScaledBitmap(bitmap, 200, 200, true);
答案 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
为您提供更多控制:您可以准确指出位图的最终尺寸,...
最好是使用两种方法的组合:
inSampleSize
的最大值(使得解码图像仍然大于您需要的最终尺寸)Bitmap.createScaledBitmap
精确控制最终尺寸答案 2 :(得分:-1)
createScaledBitmap方法生成低质量图像
中获取建议