CENTER _ INSIDE 和 FIT _ CENTER 缩放类型有什么区别?

我分辨不出 ImageView.ScaleType.CENTER_INSIDEImageView.ScaleType.FIT_CENTER的区别。

CENTER_INSIDE

均匀缩放图像(保持图像的长宽比) ,使图像的两个尺寸(宽度和高度)都等于或小于视图的相应尺寸(减去填充)。

FIT_CENTER

计算一个可以保持原始 src 长宽比的比例,但是也可以确保 src 完全适合 dst。至少有一个轴(X 或 Y)将精确适合。结果以 dst 为中心。

有人能解释一下这两者之间的区别吗?

51672 次浏览

FIT _ CENTER 将确保源完全适合容器内部,并且水平或垂直轴将是精确的。

CENTER _ INSIDE 将在容器内居中显示图像,而不是使边缘完全匹配。

因此,如果你有一个10“ x10”的方框和一个8“ x8”的图像,CENTER _ INSIDE 将直接位于方框的中间,在源容器和目标容器之间有2“。

使用 FIT _ CENTER,上面示例中的相同图像将适合整个容器,因为两边相等,并且一个轴将匹配目标。使用 FIT _ CENTER,如果你有一个5“ x 10”的盒子,和一个5“ x 7”的图像,图像将按比例缩放,这样其中一个轴就可以合适,但是仍然会在目的地内将图像居中。

它们是相似的,但是其中一个是为了源尽可能多地填充目的地,而另一个只是将图像集中在目的地内部。

希望这能澄清一点

如果图像比容器大,它们是相同的。 如果图像比较小,那么容器 CENTER _ INSIDE 不会放大图像,而 FIT _ CENTER 会。

下面是 CENTER_INSIDEFIT_CENTER之间的区别的图形说明。


图片使用(100 × 100) :

Android_Robot_100.png


小图像视图(75 × 50) :

内部:

CENTER_INSIDE for small image view

FIT _ CENTER:

FIT_CENTER for small image view

CENTER_INSIDEFIT_CENTER都会缩小图像。


大图(300 × 200) :

内部:

CENTER_INSIDE for large image view

FIT _ CENTER:

FIT_CENTER for large image view

CENTER_INSIDE不放大图像,FIT_CENTER放大图像。


安卓机器人是从谷歌创建和共享的作品中复制或修改而来,并根据知识共享3.0署名许可中描述的术语使用。