React Native 检索实际图像大小 [英] React Native Retrieve Actual Image Sizes
问题描述
我希望能够知道已传递到 <Image/>
的网络加载图像的实际大小我已尝试使用 onLayout
计算出大小(取自这里 https://github.com/facebook/react-native/issues/858) 但这似乎在已经通过布局引擎推送后返回经过消毒的大小.
I would like to be able to know the actual size of a network-loaded image that has been passed into <Image />
I have tried using onLayout
to work out the size (as taken from here https://github.com/facebook/react-native/issues/858) but that seems to return the sanitised size after it's already been pushed through the layout engine.
我尝试查看 onLoadStart、onLoad、onLoadEnd、onProgress 以查看是否有任何其他可用信息,但似乎无法触发其中任何信息.我已将它们声明如下:
I tried looking into onLoadStart, onLoad, onLoadEnd, onProgress to see if there was any other information available but cannot seem to get any of these to fire. I have declared them as follows:
onImageLoadStart: function(e){
console.log("onImageLoadStart");
},
onImageLoad: function(e){
console.log("onImageLoad");
},
onImageLoadEnd: function(e){
console.log("onImageLoadEnd");
},
onImageProgress: function(e){
console.log("onImageProgress");
},
onImageError: function(e){
console.log("onImageError");
},
render: function (e) {
return (
<Image
source={{uri: "http://adomain.com/myimageurl.jpg"}}
style={[this.props.style, this.state.style]}
onLayout={this.onImageLayout}
onLoadStart={(e) => {this.onImageLoadStart(e)}}
onLoad={(e) => {this.onImageLoad(e)}}
onLoadEnd={(e) => {this.onImageLoadEnd(e)}}
onProgress={(e) => {this.onImageProgress(e)}}
onError={(e) => {this.onImageError(e)}} />
);
}
谢谢.
推荐答案
Image 组件现在提供了一个静态方法来获取图像的大小.例如:
Image component now provides a static method to get the size of the image. For example:
Image.getSize(myUri, (width, height) => {this.setState({width, height})});
这篇关于React Native 检索实际图像大小的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!