Image
用于显示多种不同类型图片的 React 组件,包括网络图片、静态资源、临时的本地图片、以及本地磁盘上的图片(如相册)等。
下面的例子分别演示了如何显示从本地缓存、网络甚至是以'data:'
的 base64 uri 形式提供的图片。
请注意对于网络和 base64 数据的图片需要手动指定尺寸!
示例
- 函数式组件
- Class 组件
你可以给图片添加style
属性:
- 函数式组件
- Class 组件
在 Android 上支持 GIF 和 WebP 格式图片
默认情况下 Android 是不支持 GIF 和 WebP 格式的。你需要在android/app/build.gradle
文件中根据需要手动添加以下模块:
dependencies {
// 如果你需要支持Android4.0(API level 14)之前的版本
implementation 'com.facebook.fresco:animated-base-support:1.3.0'
// 如果你需要支持GIF动图
implementation 'com.facebook.fresco:animated-gif:2.5.0'
// 如果你需要支持WebP格式,包括WebP动图
implementation 'com.facebook.fresco:animated-webp:2.5.0'
implementation 'com.facebook.fresco:webpsupport:2.5.0'
// 如果只需要支持WebP格式而不需要动图
implementation 'com.facebook.fresco:webpsupport:2.5.0'
}
文档
Props
accessible
当此属性为 true 时,表示此图片是一个启用了无障碍功能的元素。
类型 | 默认值 |
---|---|
bool | false |
accessibilityLabel
设置一段文字。当用户与图片交互时,读屏器(无障碍功能)会朗读你所设置的这段文字。
类型 |
---|
string |
blurRadius
blurRadius(模糊半径):为图片添加一个指定半径的模糊滤镜。
类型 |
---|
number |
提示: 在 iOS 上
blurRadius
最好不要低于5
capInsets
iOS
当图片被缩放的时候,capInsets 指定的角上的尺寸会被固定而不进行缩放,而中间和边上其他的部分则会被拉伸。这在制作一些可变大小的圆角按钮、阴影、以及其它资源的时候非常有用(译注:这就是常说的九宫格或者.9 图。了解更多信息,可以参见苹果官方文档。
Type |
---|
Rect |
defaultSource
在读取图片时默认显示的图片。
类型 |
---|
ImageSource |
注意: 在 Android 的 debug 版本上本属性不会生效(但在 release 版本中会生效)。
fadeDuration
Android
渐入的动画持续时间。
Type | Default |
---|---|
number | 300 |
loadingIndicatorSource
Similarly to source
, this property represents the resource used to render the loading indicator for the image, displayed until image is ready to be displayed, typically after when it got downloaded from network.
类型 |
---|
ImageSource (uri only), number |
onError
当加载错误的时候调用此回调函数。
类型 |
---|
| function({ nativeEvent: { error } }
) => void
onLayout
当元素加载或者布局改变的时候调用。
类型 |
---|
({nativeEvent: LayoutEvent} => void |
onLoad
加载成功完成时调用此回调函数。
示例: onLoad={({nativeEvent: {source: {width, height}}}) => setImageRealSize({width, height})}
类型 |
---|
({ nativeEvent: ImageLoadEvent }) => void |