CENTER_INSIDE和FIT_CENTER刻度types有什么区别?

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

CENTER_INSIDE

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

FIT_CENTER

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

有人能说明两者的区别吗?

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

CENTER_INSIDE将会将图像放在容器中间,而不是使边缘完全匹配。

所以如果你有一个10“×10”的方形盒子和一个8“×8”的图像,CENTER_INSIDE将直接在盒子的中间,在源容器和目标容器之间有2“。

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

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

希望澄清一点

下面是CENTER_INSIDEFIT_CENTER之间CENTER_INSIDE FIT_CENTER


使用的图像(100×100):

Android_Robot_100.png


小图像视图(75×50):

CENTER_INSIDE:

CENTER_INSIDE用于小图像视图

FIT_CENTER:

FIT_CENTER小图像视图

CENTER_INSIDEFIT_CENTER缩小图像。


大图像查看(300×200):

CENTER_INSIDE:

CENTER_INSIDE用于大图像视图

FIT_CENTER:

FIT_CENTER大图像视图

CENTER_INSIDE不放大图像, FIT_CENTER


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

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