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

Kei*_*ith 135 scaling android imageview android-imageview scaletype

我不能告诉之间的区别ImageView.ScaleType.CENTER_INSIDEImageView.ScaleType.FIT_CENTER.

CENTER_INSIDE

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

FIT_CENTER

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

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

Pan*_*ang 234

这是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创建和共享的作品复制或修改的,并根据Creative Commons 3.0 Attribution License中描述的条款使用.


Bla*_*rai 138

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

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

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

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

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

希望澄清一点

  • 基本上,文档不清楚CENTER_INSIDE不会向上扩展(仅向下) (39认同)
  • 听起来FIT_CENTER(几乎)总是更有利. (4认同)
  • 这仍然没有意义,因为`FIT_CENTER`表明`至少一个轴(X或Y)将完全匹配.这是否意味着两者都做同样的事情? (2认同)

Zar*_*kka 48

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