Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android inSampleSize与createScaledBitmap?_Android_Imageview_Android Bitmap - Fatal编程技术网

Android inSampleSize与createScaledBitmap?

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,我

好的,BitmapFactory.options的inSampleSize属性将根据
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的用途是什么。它对图像执行什么操作?它在不修改原始位图的情况下缩放图像。