干就完了!!!
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>
)
}
** 注意:为达到适配效果,需要根据具体宽高其一来适配