反应本机 – 在React Native中保持全幅图像的宽高比

前端之家收集整理的这篇文章主要介绍了反应本机 – 在React Native中保持全幅图像的宽高比前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有关于标签查询.我想要一个图像来使用我使用alignSelf做的父的整个宽度:stretch,但是我也想要根据图像的宽高比来设置高度.我该如何实现这样的事情?

所以我想要一种方式来指定高度是图像宽度的比例.

我喜欢bdv的方法,我几乎在我的应用程序中使用这种图像.这就是为什么我创建了一个使用onLayout来支持设备旋转的自己的组件.
export default class FullWidthImage extends Component {
    constructor() {
        super();

        this.state = {
            width: 0,height: 0
        };
    }

    _onLayout(event) {
        const containerWidth = event.nativeEvent.layout.width;

        Image.getSize(this.props.source,(width,height) => {
            this.setState({
                width: containerWidth,height: containerWidth * height / width
            });
        });
    }

    render() {
        return (
            <View onLayout={this._onLayout.bind(this)}>
                <Image
                    source={this.props.source}
                    style={{
                        width: this.state.width,height: this.state.height
                    }} />
            </View>
        );
    }
}

你可以这样使用它:

<FullWidthImage source={{uri: 'http://example.com/image.jpg'}} />

猜你在找的React相关文章