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

干就完了!!!

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>
  )
}

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 文:赵苗 最近在朋友圈频繁看到这个图片。 告诉我们这样一个故事: 一条通向山顶的路,崎岖难行。一个健壮的男人,背着...
    赵苗阅读 1,373评论 0 1
  • 我在火把旁醒来 你在岩壁上画一头大角的羚羊 我在白炽灯下醒来 你在黑板上画一条五彩斑斓的鳊鱼 我在烈日下醒来 你在...
    梁子满阅读 190评论 0 0
  • 1.爱对了是爱情,爱错了是青春。 2.对不起是你的摆脱,不代表我要原谅你的过错。 3.医生专家说左耳是靠近心脏最近...
    山楂果八卦阅读 1,946评论 0 0