• React Native 组件之Image


    Image组件类似于iOS中UIImage控件,该组件可以通过多种方式加载图片资源。

    使用方式,加载方式有如下几种:

    /**
     * Sample React Native App
     * https://github.com/facebook/react-native
     * 周少停
     * image 加载的三种方式+设置图片的内容模式
     */
    
    import React, { Component } from 'react';
    import {
      AppRegistry,
      StyleSheet,
      Text,
      Image,
      View,
    } from 'react-native'
    
    class Project extends Component {
      render() {
        return (
          <View style={styles.container}>
            <Text>加载工程中图片</Text>
           <Image source={require('./imgs/1111.png')} style={{120,height:120}}/> 
            <Text>加载Xcode中asset的图片,也可以使用uri的方式加载</Text>
           <Image source={require('image!520')} style={{120,height:120}} />
            <Text>加载网络中的图片</Text>
           <Image source={{uri:'https://unsplash.it/600/400/?random'}} style={{120,height:200}}/>
            <Text>设置加载图片的模式</Text>
            <Image source={{uri:'https://unsplash.it/600/400/?random'}} style={{120,height:200,resizeMode:Image.resizeMode.cover}}/>
            <Image source={{uri:'https://unsplash.it/600/400/?random'}} style={{120,height:200,resizeMode:Image.resizeMode.contain}}/>
            <Image source={{uri:'https://unsplash.it/600/400/?random'}} style={{120,height:200,resizeMode:Image.resizeMode.stretch}}/>
          </View>
        );
      }
    }
    
    const styles = StyleSheet.create({
      container: {
        flex: 1,
        marginTop:20,//上边距
        flexDirection:'column',//主轴方向 垂直
        justifyContent: 'flex-start',//控件在主轴上的对齐方向
        alignItems: 'flex-start', //控件在侧轴上的对齐方向
        backgroundColor: '#F5FCFF',
      }
    });
    
    AppRegistry.registerComponent('Project', () => Project);
    /**
     * Sample React Native App
     * https://github.com/facebook/react-native
     * 周少停 2016-09-13
     * Imaage的常见属性
     */
    
    import React, { Component } from 'react';
    import {
      AppRegistry,
      StyleSheet,
      Text,
      View,
      Image
    } from 'react-native';
    //导入json数据
    var BadgeData = require('./BadgeData.json');
    
    //定义一些全局变量
    var Dimensions = require('Dimensions');
    var {width} = Dimensions.get('window'); //屏宽
    var cols = 3 //总列数
    var boxW = 100; //单个盒子的宽度&高度
    var vMargin = (width - cols*boxW)/(cols + 1);//盒子中间的水平间距
    var hMargin = 25;
     
    class Project extends Component {
      render() {
        return (
          <View style={styles.container}>
           {/*返回包的数据*/}
            {this.renderAllBadge()}
          </View>
        );
      }
      //返回所有的包
      renderAllBadge(){
        //定义一个数组,装每个包的信息
        var allBadge = [];
        //遍历json数据
        for(var i=0;i<BadgeData.data.length;i++){
          //去除单独的数据对象
          var badge = BadgeData.data[i];
          //直接装入数组
          allBadge.push(
            <View key={i} style={styles.outViewStyle}>
                <Image source={{uri:badge.icon}} style={styles.imageStyle} />
                <Text style={styles.mainTitleStyle}>
                   {badge.title}
                </Text>
            </View>
          );
        }
        //返回数组
        return allBadge;
      }
    }
    
    const styles = StyleSheet.create({
      container: {
        flex: 1,
        marginTop:20,//上边距
        flexDirection:'row',//主轴方向,水平
        alignItems:'flex-start',//定义控件在侧轴上的对齐方式
        flexWrap:'wrap',//是否换行
        backgroundColor: '#F5FCFF'
      },
      outViewStyle: {
        backgroundColor:'gray',
        alignItems:'center',
        boxW,
        height:boxW,
        marginLeft:vMargin,
        marginBottom:hMargin
      },
      imageStyle:{
        80,
        height:80
      },
      mainTitleStyle:{
        color:'white'
      }
    });
    
    AppRegistry.registerComponent('Project', () => Project);
    

      

     完整源码下载:https://github.com/pheromone/React-Native-1 

  • 相关阅读:
    form的get与post方式的区别(转)
    html中DIV+CSS与TABLE布局方式的区别及HTML5新加入的结构标签(转)
    HTML简介
    数据库设计 三范式
    索引与视图
    算法训练 连续正整数的和
    算法训练 寂寞的数
    算法训练 学做菜
    算法训练 猴子分苹果
    算法训练 A+B problem
  • 原文地址:https://www.cnblogs.com/shaoting/p/5931924.html
Copyright © 2020-2023  润新知