Android inSampleSize与createScaledBitmap?
好的,BitmapFactory.options的inSampleSize属性将根据Android inSampleSize与createScaledBitmap?,android,imageview,android-bitmap,Android,Imageview,Android Bitmap,好的,BitmapFactory.options的inSampleSize属性将根据inSampleSize值读取采样图像。如果值为4,它将有效读取1/16像素,因此加载它所需的内存将大幅减少。 实际上,在沿高度跳过1/4像素,沿宽度跳过1/4像素的意义上,它保持了纵横比。 当我在较小的图像视图中加载此位图时,纵横比保持不变,看起来不错。我已使用以下公式推导了inSampleSize=max(宽度/reqWidth,高度/reqHeight) imageview的大小=100dp*100dp,我
inSampleSize
值读取采样图像。如果值为4,它将有效读取1/16像素,因此加载它所需的内存将大幅减少。
实际上,在沿高度跳过1/4像素,沿宽度跳过1/4像素的意义上,它保持了纵横比。
当我在较小的图像视图中加载此位图时,纵横比保持不变,看起来不错。我已使用以下公式推导了inSampleSize=max(宽度/reqWidth,高度/reqHeight)
imageview的大小=100dp*100dp,我已经根据屏幕密度将100dp转换为像素,并将结果用作reqWidth和reqHeight。
(注意:我的所有图像都大于reqWidth和reqHeight)
但是,如果我在上述位图的简化版本上应用另一个操作Bitmap.createScaledBitmap()
,则图像会拉伸,并且在视图中看起来不太好
我无法理解createScaledBitmap()
到底做了什么?给定一个位图,让我们称它为bmp1,它从bmp1创建一个新位图,该位图被放大/缩小到一个新的大小
但是,由于您是自己进行缩放的,也许您只需调用createBitmap()
?那一个会尊重你告诉它的新尺寸,不会缩放原始图像,这是我所理解的你想要的
但是,如果我错了,请纠正我。是的,我已尝试直接创建位图()。它工作得很好。但是我想知道createScaledBitmap的用途是什么。它对图像执行什么操作?它在不修改原始位图的情况下缩放图像。