调整位图大小的最佳方法是什么?
使用
options.inSampleSize = 2;
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.mandy_moore, options);
或者
Bitmap resizedbitmap = Bitmap.createScaledBitmap(bitmap, 200, 200, true);
调整位图大小的最佳方法是什么?
使用
options.inSampleSize = 2;
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.mandy_moore, options);
或者
Bitmap resizedbitmap = Bitmap.createScaledBitmap(bitmap, 200, 200, true);
使用它来创建与原始图像保持相同纵横比的采样图像。这是调整大小的最佳方式。
options.inSampleSize = 2;
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.mandy_moore, options);
Bitmap resizedbitmap = Bitmap.createScaledBitmap(bitmap, 200, 200, true);
这将在提供的 w 和 h 中缩放位图。这可能会扭曲位图。
根据您的需要使用。
调整位图大小的最佳方法是什么?
这取决于您需要的灵活性:
options.inSampleSize = N;
意味着您将获得比原始图像小 N 倍的图像。基本上,解码器将每 N 个像素读取 1 个像素。
如果您不需要特定大小的位图,但需要将其变小以使用更少的内存,请使用该选项。这对于阅读大图像特别有用。
Bitmap.createScaledBitmap
另一方面为您提供更多控制:您可以精确地指示位图的最终尺寸,...
最好的方法是结合使用这两种方法:
inSampleSize
(使得解码后的图像仍然大于您需要的最终尺寸)Bitmap.createScaledBitmap
精确控制生成的大小createScaledBitmap 方法产生低质量图像
从这篇文章中获取建议位图图像质量