CENTER_INSIDE和FIT_CENTER比例类型有什么区别?

时间:2012-07-05 23:34:42

标签: android imageview android-imageview scaling scaletype

我无法区分ImageView.ScaleType.CENTER_INSIDEImageView.ScaleType.FIT_CENTER之间的区别。

CENTER_INSIDE

  

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

FIT_CENTER

  

计算将保持原始src宽高比的比例,但也将确保src完全适合dst。至少一个轴(X或Y)将完全适合。结果集中在dst内。

有人可以说明两者之间的差异吗?

4 个答案:

答案 0 :(得分:223)

以下是CENTER_INSIDEFIT_CENTER之间差异的图解说明。


使用的图像(100×100):

Android_Robot_100.png


小图像视图(75×50):

CENTER_INSIDE:

CENTER_INSIDE for small image view

FIT_CENTER:

FIT_CENTER for small image view

CENTER_INSIDEFIT_CENTER都会缩小图像。


大图像视图(300×200):

CENTER_INSIDE:

CENTER_INSIDE for large image view

FIT_CENTER:

FIT_CENTER for large image view

CENTER_INSIDE不会放大图片,FIT_CENTER会这样做。


Android机器人是根据Google创建和共享的作品复制或修改的,并根据Creative Commons 3.0 Attribution License中描述的条款使用。

答案 1 :(得分:134)

FIT_CENTER将确保源完全适合容器内部,水平轴或垂直轴将是精确的。

CENTER_INSIDE将图像置于容器内部,而不是使边缘完全匹配。

所以如果你有一个10“x 10”的方框和一个8“x8”的图像,CENTER_INSIDE将直接位于包装盒的中间,在源和目标容器之间有2“。 / p>

使用FIT_CENTER,上面示例中的相同图像将适合整个容器,因为边相等,并且一个轴将匹配目标。使用FIT_CENTER,如果你有一个5“x 10”的盒子和一个5“x 7”的图像,图像将按比例缩放,因此其中一个轴适合,但仍然会将图像置于其中心。目的地。

它们是相似的,但是一个是这样的,即源将尽可能地填充目的地,而另一个只是将图像居中在目的地内。

希望澄清一点

答案 2 :(得分:44)

如果图像大于容器,它们是相同的。 如果图像较小,则容器CENTER_INSIDE将不会缩放图像,而FIT_CENTER则会。

答案 3 :(得分:1)

如果图像大于容器,则相同。 如果图像较小,则容器CENTER_INSIDE将不会按比例放大图像,而FIT_CENTER则会将图像放大。