react-native 动态计算图片宽高适配

2019-06-06  本文已影响0人  風隨風去

干就完了!!!

const Dimensions = require('Dimensions');
const screenW = Dimensions.get('window').width;

//设置图片宽高--android、ios有兼容
  //android
  setSize(imgItem) {
    let { imgH } = this.state;
    let showH;
    if (Platform.OS != 'ios') {
        Image.getSize(imgItem, (w, h) => {//多张则循环判断处理
            showH = Math.floor(h / (w / (screenW - 20)));
            imgH[i] = showH;
            this.setState({ imgH: imgH });
        });
    }
  }
  //ios
  setSizeIos(imgItem) {
      let { imgH } = this.state;
      let showH;
      if (Platform.OS == 'ios') {
        Image.getSize(imgItem, (w, h) => {//同安卓
          showH = Math.floor(h / (w / (screenW - 20)));
          imgH[i] = showH;
          this.setState({ imgH: imgH });
        })
      }
  }
render() {
  let { imgH,img } = this.state;
  return (
    <View style={{flex:1,alignItems:'center',justifyContent:'center'}}>
      <Image
         onLoadStart={() => { this.setSize(img) }}//多张可多加该图index参数
         onLayout={() => { this.setSizeIos(img) }}
         style={{width:screenW-20,height:imgH}}
         source={{uri:img}}/>
    </View>
  )
}

** 注意:为达到适配效果,需要根据具体宽高其一来适配

上一篇 下一篇

猜你喜欢

热点阅读