1,resizeMode介绍
(1)当 Image 组件的实际宽、高与图片的实际宽、高不符时,要如何显示图片由样式定义中的 resizeMode 取值来决定。
(2)resizeMode 的五个取值分别是:contain、cover、stretch、center 和 repeat。
如果没有定义 resizeMode,默认值为:cover
其中 repeat 只对 iOS 平台有效。
(3)无论 resizeMode 取值如何,图片都会在 Image 组件的显示区域居中显示。即显示的图片中点与显示区域的中点是一个点。
(4)resizeMode 比较特殊,可以按需要,自由放置在如下两个地方:
既可以作为 Image 组件样式中的一个键值对发挥作用。
也可以作为 Image 组建的属性来发挥作用。
2,各种模式介绍
(1)cover 模式(默认值)
该模式要求图片能够填充整个 Image 组件定义的显示区域,可以对图片进行放大或者缩小,可以丢弃放大或缩小后的图片中的部分区域,只求在显示比例不失真的情况下填充整个显示区域。
如果图片的宽、高有一个值小于 Image 的实际宽、高, React Native 会对图片进行放大,直到图片的宽与高均不小于 Image 的实际宽、高。然后将放大的图片居中显示,超出显示区域的部分被直接丢弃。
如果图片的宽、高均大于 Image 的实际宽、高, React Native 会对图片进行等比缩小,直到缩小后图片的宽、高有一个值等于 Image 的实际宽、高。然后将缩小后的图片居中显示,超出区域的部分被直接丢弃。
(2)contain 模式
该模式要求显示整张图片,可以对它进行等比放大或者缩小,但不能丢弃改变后图片的某部分。这个模式下图片得到完整的呈现,比例不会变。但图片可能无法填充 Image 的所有区域,会在侧边或者上下留下空白,由 Image 组件的底色填充。
如果图片的实际宽、高都小于 Image 的实际宽、高, React Native 会对图片进行等比放大,直到宽、高中有一个值等于 Image 的实际宽、高。然后居中显示图片。
如果图片的实际宽、高有一个值或者都大于 Image 的实际宽、高, React Native 会对图片进行等比缩小,直到缩小后图片的宽、高有一个不小于 Image 的实际宽、高,然后在 Image 中展现图片。
(3)stretch 模式
该模式要求图片填充整个 Image 定义的显示区域,因此会对图片进行任意的缩放,不考虑保持图片原来的宽、高比。这种模式显示出来的图片有可能会出现明显的失真。
(4)center 模式
该模式要求图片图片位于显示区域的中心。这种模式下图片可能也无法填充 Image 的所有区域,会在侧边或者上下留下空白,由 Image 组件的底色填充。
如果图片的实际宽、高都小于 Image 的实际宽、高, React Native 不会对图片进行任何缩放,只是把它居中呈现在父 View 中。
如果图片的实际宽、高有一个值或者都大于 Image 的实际宽、高, React Native 会对图片进行等比缩小,直到缩小后图片的宽、高有一个不小于 Image 的实际宽、高,然后在 Image 中展现图片。
(5)repeat 模式(iOS 独有)
该模式的图片处理思路是用一张或者多张图片来填充整个 Image 定义的显示区域。
网友评论