inSampleSize vs createScaledBitmap?

时间:2016-01-27 16:08:17

标签: android imageview android-bitmap

AFAIK,BitmapFactory.options的inSampleSize属性将根据inSampleSize值读取采样图像。例如:如果值为4,它将有效读取1/16像素,因此加载它所需的内存将大大减少。 实际上,它保持宽高比,即沿高度跳过1/4像素,沿宽度跳过1/4像素。 当我以较小的ImageView加载此位图时,会保持纵横比并且看起来很好。我使用以下公式推导出inSampleSize = max(Width/reqWidth, height/reqHeight)
imageview的大小= 100dp * 100dp,我已根据屏幕密度将100dp转换为像素,并将结果用作reqWidth和reqHeight。 (注意:我的所有图像都大于reqWidth和reqHeight)

但是,如果我在上面缩小版的位图上应用另一个操作Bitmap.createScaledBitmap(),图像会被拉伸,在视图中看起来不太好。

我无法理解createScaledBitmap()究竟做了什么?

1 个答案:

答案 0 :(得分:0)

给定一个位图,让它称之为bmp1,create Scaled bitmap method从bmp1创建一个新的位图,并将其缩小/缩小为新的大小。

但是,既然你自己进行了扩展,也许你应该简单地调用createBitmap()?那个人会尊重你告诉它的新尺寸,并且不会缩放原始图像,这就是我想要的东西。

但是,如果我错了,请纠正我。