我无法区分ImageView.ScaleType.CENTER_INSIDE
和ImageView.ScaleType.FIT_CENTER
之间的区别。
CENTER_INSIDE
均匀缩放图像(保持图像的纵横比),使图像的尺寸(宽度和高度)等于或小于视图的相应尺寸(减去填充)。
FIT_CENTER
计算将保持原始src宽高比的比例,但也将确保src完全适合dst。至少一个轴(X或Y)将完全适合。结果集中在dst内。
有人可以说明两者之间的差异吗?
答案 0 :(得分:223)
以下是CENTER_INSIDE
和FIT_CENTER
之间差异的图解说明。
CENTER_INSIDE
和FIT_CENTER
都会缩小图像。
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则会将图像放大。