(7)-图片控件

最后更新于:2022-04-01 06:50:01

> [Image](http://facebook.github.io/react-native/docs/image.html#content) ## Image 展现图片的控件 ## 属性 | 名称 | 类型 | 意义 | 默认值 | | --- | --- | --- | --- | | onLayout | function | 布局改变时调用该属性设置的函数 | 无 | | resizeMode | enum | 当图片和控件大小不匹配时采取什么规则来调整图片(‘cover’, ‘contain’, ‘stretch’) | cover | | source | {uri:string}, number | 指定图片资源 | 无 | | style | style | 样式 | 无 | | testID | String | UI Automation 测试脚本中用到的id号 | 无 | | accessibilityLabel | String | (iOS特有)用户可以通过该文本与Image控件交互 | 无 | | accessible | bool | (iOS特有)指代该控件是否是accessibility元素 | true | | capInsets | {top:number, left:number, bottom:number, right:number} | (iOS特有)调整图片大小时,设置布局 | 无 | | defaultSource | {uri: string} | (iOS特有)当网络断开后,默认显示的静态图片 | 无 | | onError | function | (iOS特有)当下载失败后调用的函数 | 无 | | onLoad | function | (iOS特有)当完成调用加载函数后调用的函数 | 无 | | onLoadEnd | function | (iOS特有)完成加载后,成功或者失败以后调用的函数 | 无 | | onLoadStart | function | (iOS特有)加载开始 | 无 | | onProgress | function | (iOS特有)加载中 | 无 | ## 实例 ## 网络资源 ~~~ <Image source={{uri: 'https://facebook.github.io/react/img/logo_og.png'}} style={{width: 400, height: 400}} /> ~~~ 最好设置下Image控件的尺寸,如果你不设置,可能显示不出来。 ## 静态资源 1.首先在项目的`Images.xcassets`文件夹下创建我们的图片文件夹: ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-01-07_568e13f0bc24e.jpg) 我取名为`logo.imageset`,后缀要以`imageset`结尾。把我们的图片放到这个文件夹下: ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-01-07_568e13f0d0092.jpg) **注意这个地方图片的文件名要和文件夹的名字一致**。 2.这个时候我们回到Xcode中,点击项目中`Images.xcassets`文件夹: ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-01-07_568e13f0e24d4.jpg) 这个时候可以看到logo文件夹下的图片,我们将图片从Unassigned一栏拖到上面的`1x 2x 3x`随意一栏中,然后重新build一下项目。  ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-01-07_568e13f110c8a.jpg)  3.在react-native项目中添加Image控件: ~~~ var React = require('react-native'); var { Image, AppRegistry, StyleSheet, View, } = React; var helloworld = React.createClass({ render: function() { return ( <Image source={ require('image!logo')} style={{width: 400, height: 400}}/> ); } }); var styles = StyleSheet.create({ }); AppRegistry.registerComponent('hellowrold',() => helloworld); ~~~ 从源码中可以看出,导入静态图片的奇特之处在于使用`require`语句,将其作为模块导入到Image控件中。 4.效果 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-01-07_568e13f12bc9f.jpg) ## Android 在Android版本下实验通过,代码一样。
';