Android Bitmap调整大小

Joh*_*tor 6 java android android-layout

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

运用

options.inSampleSize = 2;
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.mandy_moore, options);
Run Code Online (Sandbox Code Playgroud)

要么

Bitmap resizedbitmap = Bitmap.createScaledBitmap(bitmap, 200, 200, true);
Run Code Online (Sandbox Code Playgroud)

Dco*_*hef 13

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

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

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

根据您的需要使用.


Vin*_*rat 13

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

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

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

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

Bitmap.createScaledBitmap 另一方面,为您提供更多控制:您可以精确指示位图的最终尺寸,...

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

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

  • RAM的使用情况如何?这是最值得考虑的事情之一...... (3认同)