RN-Image & ImageBackground
yaofly2012 opened this issue · comments
yq commented
展位图
图片加载过程中先展示一个展位图是很必要的。
上图(左)没有展位图
利用defaultSource
属性
A static image to display while loading the image source.
- 展位图资源最好不要采用在线资源,
- 官网的解决方案,比较简单。但是展位图和实际图之间切换比较生硬:
- 图片加载需要时间
- 图片加载完会立马展示,会造成闪烁。
渐进式加载图片
利用Animated
和opacity
更丝滑的切换展位图和实际图。
参考
yq commented
ImageBackground
背景
ImageBackground
组件为了实现CSS中background-image
的功能。它通过展示一个Image
组件作为另外一个组件的背景图片。
ImageBackground
组件原理
ImageBackground
组件创建的背景图所占的尺寸到底是谁的呢?是其子组件的尺寸么?
ImageBackground
组件内部创建了一个Image
组件,同时也创建一个View
组件(就是上面提到的另外一个组件)作为Image
组件容器, 这也是背景图占据的尺寸。
并且ImageBackground
组件接受跟Image
组件一样的props,除了一个区别 :
style
属性是添加个给容器组件的style
,imageStyle
属性才是添加给内部Image
组件的style
。同时imageRef
属性也是指向内部Image
组件的。
总结:
ImageBackground
组件创建的背景图所占的尺寸是其组件本身的尺寸,而不是其子组件的尺寸。style
属性是添加给容器组件的style
,imageStyle
属性是添加给内部Image
组件的style
。- 可以简单理解为
ImageBackground
组件是一个带背景图的View
组件。