RN

React Native基础之Image

2017-11-24  本文已影响11人  _ck_

React Native基础之Image

Image组件

       在React Native中,Image组件是用来加载图片的组件,如果学习过android的话,应该知道Image组件的作用就相当于android中的ImageView控件,用于显示图片。

Image加载图片等几种方式

       作为RN中加载图片的组件,不同于android中的ImageView,android中的ImageView仅用来加载android项目中的drawable和mipmap目录下的图片资源。

       RN项目本就是缩小了android与ios的差别,囊括了原生的android项目和ios项目,自然也就包含了原生项目中的图片资源目录,再加上RN项目中需要公共资源目录,因此,在React Native中,Image加载图片的方式出现了好几种,如下:

加载RN项目中的静态图片

<Image source={require('../img/icon_logo.png')} style={{marginTop:20}}/>

     
 加载方式为:

require('图片存放路径')

       此种方式用于加载RN项目中的静态图片(require中放的是RN项目中的图片路径)

       使用此方式加载静态图片时,图片的位置(在RN项目中,不能在android、ios、node-modules目录下)使用这一种加载图片的方式

     
 注意:

加载原生图片

<Image source={{uri:'icon_app'}} style = {styles.icon}></Image>

const styles = StyleSheet.create({
    container:{
        flexDirection:'column',
        justifyContent:'center',
        alignItems:'center',
    },
    icon:{
        width:120,
        height:120,
    },
    text:{
        color:'black',
        fontSize:16,
        marginTop:20
    }
})

     
 所谓原生图片,android中指的是app/src/main/res/drawable目录下,ios中指的是Images.xcassets目录,或者说是打包后的apk后反编译出来的图片资源

     
 从以上代码可以看到,我们可以看到,加载方式为:

{uri:'图片名称'}

这里的图片名称不带图片的后缀名,并且没有路径,只有一个图片名称

注意:

还有一点需要注意,就是上面的加载方式在android中默认加载的drawable目录下的图片资源,如果想加载mipmap下的图片资源,加载方式如下:

var nativeImageSource = require('nativeImageSource');
 
class RN_Image extends Component {
  render() {
    let ades = {
      android: 'mipmap/ic_launcher',
      width: 72,
      height: 72
    };
 
    return (
      <View style={styles.container}>
          <Image style={styles.image} source={nativeImageSource(ades)} />
      </View>
    );
  }
}
const styles = StyleSheet.create({
  container: {
      flex: 1,
      alignItems: 'center',
      backgroundColor: 'gray'
  },
  image: {
      backgroundColor: 'white',
      width: 120,
      height: 120,
  },
});

module.exports = RN_Image

nativeImageSource中可以指定图片的宽高,如果在image的style中同时指定了图片宽高的话,以style中的为准。

加载网络图片

<Image
    source = {{uri:'https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo_top_ca79a146.png'}}
    style={styles.icon}
    resizeMode = 'cover'></Image>

     
 加载网络图片也是通过uri的方式来加载的

{uri:'图片url'}

同上,此种方式也是需要指定图片的大小(widht和height)的

Image常用属性

source:标记图片的引用,填写图片路径或者url
+ 大方

reseizeMode:设置图片的填充模式,有三个可选值(默认值时cover)

我们来看看三种模式的显示效果:

image

Image样式属性

上一篇 下一篇

猜你喜欢

热点阅读