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()
究竟做了什么?
答案 0 :(得分:0)
给定一个位图,让它称之为bmp1,create Scaled bitmap method从bmp1创建一个新的位图,并将其缩小/缩小为新的大小。
但是,既然你自己进行了扩展,也许你应该简单地调用createBitmap()
?那个人会尊重你告诉它的新尺寸,并且不会缩放原始图像,这就是我想要的东西。
但是,如果我错了,请纠正我。