1. 程式人生 > >React-native Image的初識

React-native Image的初識

Image元件的常見屬性:

  • 屬性方法

    • onLoad(function):當圖片載入成功後,回撥該方法
    • onLoadStart(function):當圖片開始載入的時候呼叫該方法
    • onLoadEnd(function):當圖片載入結束回撥該方法,不會管圖片載入成功還是失敗
    • onLayout(function):當 Image 佈局發生變化會呼叫該方法
    • resizeMode:縮放比例,(包含可選引數’cover’, ‘contain’, ‘stretch’),當該圖片的尺寸超過佈局的尺寸時,會根據設定 Mode 進行縮放或剪裁圖片
    • source{uri:string}:進行標記圖片引用,該引數可以為一個網路 url地址 或者 一個本地路徑
  • 樣式屬性

    • FlexBox:支援彈性盒子風格
    • Transforms:支援屬性動畫
    • backgroundcolor:背景顏色
    • borderColor:邊框顏色
    • borderWidth:邊框寬度
    • borderRadius:邊框圓角
    • overflow:設定圖片尺寸超過容器可以設定顯示或隱藏(‘visible’, ‘hidden’)
    • tintColor:顏色設定
    • opacity:設定透明度(取值範圍0.0(全透明)~ 1.0(不透明))

1、沒有設定width和height的情況下,預設為圖片的寬高

/* 不設定尺寸的情況下 */
<Image source={require('./imgs/icon.png'
)} />

效果圖:
這裡寫圖片描述

2、設定width和height的情況下,尺寸圖片的寬高

/* 設定尺寸的情況下 */
<View style={styles.container}>
         <Image source={require('./imgs/icon.png')} />  
         <Image source={require('./imgs/icon.png')} style={styles.imgStyle} />
      </View>
const styles = StyleSheet.create({
  imgStyle:{
     width:30
, height:20, }, container: { flex: 1, justifyContent: 'center', alignItems: 'center', backgroundColor: '#F5FCFF', }, });

效果圖:
這裡寫圖片描述

3、載入網路圖片

{/* uri是固定寫法,後面跟上圖片網路URL地址的字串即可,還有,網路圖片必須設定圖片的大小,否則無法顯示,一般還需要配合填充方式以達到想要的效果 */}
         <Image source={{uri:'http://avatar.csdn.net/5/F/0/1_zww1984774346.jpg'}} style={styles.imgStyle2}/>

效果圖:
這裡寫圖片描述

4、動態設定圖片的寬與螢幕等寬

// 匯入Dimensions庫
var Dimensions = require('Dimensions');

export default class firstProgram extends Component {
  render() {
    // var movie = MOCKED_MOVIES_DATA[0];
    return (
      <View style={styles.container}>
         <Image source={require('./imgs/icon.png')} />  
         <Image source={require('./imgs/icon.png')} style={styles.imgStyle} />
         {/* uri是固定寫法,後面跟上圖片網路URL地址的字串即可,還有,網路圖片必須設定圖片的大小,否則無法顯示,一般還需要配合填充方式以達到想要的效果 */}
         <Image source={{uri:'http://avatar.csdn.net/5/F/0/1_zww1984774346.jpg'}} style={styles.imgStyle2}></Image>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  imgStyle:{
     width:30,
     height:20,
  },
  imgStyle2:{
     // 設定背景顏色
     backgroundColor:'green',
     // 設定寬度
     width:Dimensions.get('window').width,
     // 設定高度
     height:150
  },
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#F5FCFF',
  },
});

AppRegistry.registerComponent('firstProgram', () => firstProgram);

效果圖:
這裡寫圖片描述

圖片填充模式:

  • cover( 預設):圖片居中顯示且不拉伸圖片,超出的部分剪裁掉
imgStyle2:{
     // 設定背景顏色
     backgroundColor:'green',
     // 設定寬度
     width:Dimensions.get('window').width,
     // 設定高度
     height:150
     resizeMode:'cover'
  }
  • contain:容器完全容納圖片,圖片等比例進行拉伸
imgStyle2:{
     // 設定背景顏色
     backgroundColor:'green',
     // 設定寬度
     width:Dimensions.get('window').width,
     // 設定高度
     height:150
     resizeMode:'contain'
  }

效果圖:
這裡寫圖片描述

  • stretch:圖片被拉伸至與容器大小一致,可能會發生變形
```
imgStyle2:{
     // 設定背景顏色
     backgroundColor:'green',
     // 設定寬度
     width:Dimensions.get('window').width,
     // 設定高度
     height:150
     resizeMode:'stretch'
  }

效果:
這裡寫圖片描述

demo1:

import React, { Component } from 'react';
import {
  AppRegistry,
  StyleSheet,
  Image,
  Text,
  View,
  TabBarIOS,
  NavigatorIOS,
  ScrollView,
  TouchableHighlight 
} from 'react-native';

// 匯入Dimensions庫
var Dimensions = require('Dimensions');

export default class firstProgram extends Component {
  render() {
    // var movie = MOCKED_MOVIES_DATA[0];
    return (

    <View style={styles.container}>
                {/* 因為還沒講到listView,這邊就用View代表Cell*/}
                <View style={styles.cellStyle}>
                    {/* 頭像 */}
                    <Image source={require('./imgs/2.png')} style={styles.imgStyle}></Image>
                    {/* 暱稱 */}
                    <Text style={styles.nameStyle}>暱稱</Text>
                </View>
                {/* 分隔線 */}
                <View style={styles.lineStyle}></View>
                <View style={styles.cellStyle}>
                    {/* 頭像 */}
                    <Image source={require('./imgs/2.png')} style={styles.imgStyle}></Image>
                    {/* 出生日期 */}
                    <Text style={styles.nameStyle}>出生日期</Text>
                </View>
                {/* 分隔線 */}
                <View style={styles.lineStyle}></View>
                <View style={styles.cellStyle}>
                    {/* 頭像 */}
                    <Image source={require('./imgs/2.png')} style={styles.imgStyle}></Image>
                    {/* 籍貫 */}
                    <Text style={styles.nameStyle}>籍貫</Text>
                </View>
                {/* 分隔線 */}
                <View style={styles.lineStyle}></View>
            </View>

    );
  }
}


    const styles = StyleSheet.create({
        container: {
            marginTop:20,
            backgroundColor:'white',
            flex:1,
            // 設定換行方式
            flexWrap:'wrap'
        },

        cellStyle: {
            // 尺寸
            height:44,
            width:Dimensions.get('window').width,
            // 設定背景顏色
            backgroundColor:'white',
            // 設定主軸方向
            flexDirection:'row',
            // 設定側軸對齊方式
            alignItems:'center'
        },

        imgStyle: {
            width:30,
            height:30,
            // 設定圖片填充模式
            resizeMode:'cover',
            // 設定圓角
            borderRadius:15,
            // 設定圖片位置
            marginLeft:10
        },

        nameStyle: {
            // 設定暱稱位置
            marginLeft:10
        },

        lineStyle: {
            // 背景色
            backgroundColor:'black',
            // 設定尺寸
            width:Dimensions.get('window').width,
            height:1
        }

    });

AppRegistry.registerComponent('firstProgram', () => firstProgram);

效果圖:
這裡寫圖片描述

相關推薦

React-native Image初識

Image元件的常見屬性: 屬性方法 onLoad(function):當圖片載入成功後,回撥該方法 onLoadStart(function):當圖片開始載入的時候呼叫該方法 onLoadEnd(function):當圖片載入結束回撥該方法,不會管圖片載

React Native Image多種加載圖片方式

ner styles ole 刷新 理論 width reg apple content p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica } p.p2 { margin: 0.0px 0.0px

RN 使用第三方組件之react-native-image-picker

app ons sep too code project width odata ext 首先給個github地址:https://github.com/react-community/react-native-image-picker 該插件可以同時給iOS和Andro

12月11日,發生大面積的包含 react-native-image-picker 的安卓專案啟動崩潰現象解決方案。(我的已經解決)

12月11日,發生大面積的包含 react-native-image-picker 的安卓專案啟動崩潰現象。疑似原因為maven源丟失。解決方案見github:https://github.com/react-native-community/react-native-image-picke

react-native多圖上傳 react-native-image-picker圖片上傳之多個上傳圖片

話不多說 直接貼程式碼, 如有疑問 下方留言或者發郵箱 引入需要的元件 import ImagePicker2 from 'react-native-image-picker'; import RNHeicConverter from 'react-native

react native Image 使用詳解

Image是顯示圖片的元件。可以載入網路圖片、靜態資源、臨時的本地圖片、以及本地磁碟上的圖片。本地磁碟上的圖片需要在路徑前加 ‘file://’。 resizeMode:元件尺寸和圖片尺寸不成比

React Native 使用react-native-image-picker庫實現圖片上傳功能

react-native-image-picker作為一個整合相機和相簿的功能的第三方庫,因為其使用相對簡單受到前端開發人員的喜愛。 react-native-image-picker使用 1, 首先,安裝下該外掛。 npm install rea

React-Native Image載入本地圖片報錯error: bundling failed: Error: Unable to resolve module

在初步學習React-Native 用Imgae載入本地的時候 遇到了這個問題,程式碼是這樣的在根目錄下的images資料夾內有backicon.png這張圖片按上面配置的路徑,在程式碼中是可以定位到圖片的,但是實際執行測試就報錯找不到這個圖片,後來測試才發現要這樣寫改成這樣

react-native-image-picker在Android上閃退的解決辦法(上傳頭像base64,壓縮上傳圖片)

問題描述:最近做專案上傳頭像時用到了react-native-image-picker第三方庫,使用的是 base64格式 上傳,在以下配置的情況下,android點選選擇相簿會遇到閃退的問題,找到了

react-native-image-picker在iOS上閃退的解決辦法

最近做專案用到了react-native-image-picker這個圖片選擇的第三方庫,但在正確配置的情況下,點選選擇相簿會遇到閃退的問題,憑藉開發原生的經驗,找到了問題所在,在這裡分享一下解決辦法。 http://www.jianshu.com/p/977bc5ee

react-native-image-picker

這個糾結了很久的問題,翻了N遍的stackoverflow,上面的方法沒有一個可以解決, 最後忽然發現是我之前的一個錯誤習慣導致的 之前一直這樣導第三方包,好像沒出過問題, 這次不行了 改成 完美解決 浪費我好長時間

React Native--Image控制元件

基本用法 載入本地圖片 <Image source={require('./img/baidu.png')}/> 載入App內資源圖片 <Image sou

使用react-native-image-crop-picker上傳圖片

使用reac-native的圖片上傳外掛image-crop-picker上傳圖片的時候遇到了好多坑,真是把我坑慘了。 安裝 安裝可以參考外掛提供的方法去安裝。需要注意的是,如果android或者ios是有人負責的話就不要link了。link會自動關聯程

react native Image ImageBackground詳解

在rn版本0.46版本的時候添加了ImageBackground控制元件,在0.46版本以後使用Image的時候不能在巢狀使用,ImageBackground就是解決這個問題的,現在如果在 標籤中巢狀其他元件現在會報黃盒警告。ImageBackground的使

《ReactNative》之react-native-image-crop-picker儲存圖片到應用內部

在使用react-native-image-crop-picker(版本0.20.0)元件選擇圖片的時候,我希望將選取的圖片儲存到應用內部。但是在ios端,選取的圖片被儲存在臨時目錄中,大約3天左右會被自動刪除。在android端,選取的圖片沒有往App內部儲存,還是在原來的

react-native-image-crop-picker學習

react-native-image-crop-picker是一款注重剪裁,相簿單選、多選的第三方框架。在我集成了react-native-image-picker的時候發現,他的剪裁不太友好。作者推薦了這個react-native-image-crop-picker。

React-Native-image-picker-調取攝像頭第三方元件:

近期做的軟體中圖片處理是重點,那麼自然也就用到了相機照相或者相簿選取照片的功能。 react-native中有image-picker這個第三方元件,但是0.18.10這個版本還不是太支援iPad。 這個元件同時支援photo和video,也就是照片和視訊都可以用這個

React Native 使用react-native-image-picker外掛上傳圖片詳細步驟

專案需要用到上傳圖片功能,經過一番折騰勉強完成需求,整理一下做個記錄。外掛選擇是react-native-image-picker,還挺好用的,不過需要分ios和android不同平臺去配置.http://www.jianshu.com/p/8dd405dbd663 IO

react-native Text和Image混合嵌套布局

ati turn ext style view ima 保險 ext1 text1 <View style={[styles.p4_text1,]}> {"以下各項稅費及商業保險僅供客戶參考不作為最終購車價格".split("").map((str)=&g

react native 初識生命周期

慕課 事件觸發 回調函數 這不 框架 相關 大型項目 網絡請求 prop 關於生命周期這塊,我是看到慕課堂的一個視頻,覺得將的很好,引入很容易理解,地址是:https://www.imooc.com/video/14288 如果你們想了解一下,也可以去看看 RN