This component is based on React Native's Image but can scale its width or height automatically to keep the image's aspect ratio. It is useful when we don't know the aspect ratio in advance but want to display the entire image and limit it only by width or height.
The loading and fallback components are also available to be displayed depending on the loading state.
yarn add rn-auto-scale-imagenpm install rn-auto-scale-imageJust specify width or height and the component will automatically calculate its other dimension.
import AutoScaleImage from 'rn-auto-scale-image';
// ...
<AutoScaleImage
source={{
uri: 'https://reactnative.dev/img/logo-og.png',
}}
width={Dimensions.get('screen').width}
loadingComponent={<ActivityIndicator />}
/>Important
- If both
widthandheightprops are specified, the image will use these values as its dimensions (auto scale is disabled). - Don't specify
widthorheightattributes instyleprops to avoid bugs.
The component's width that is used to calculate its height.
The component's height that is used to calculate its width.
Set to true to use the component as an ImageBackground.
The component that will be displayed on load start.
The component that will be displayed on load error.
NOTE: loadingComponent and fallbackComponent is only displayed after the scaled size is calculated. It's wrapped and centered inside a View with the size equals the scaled size.
The opacity of the component when touch is active. This prop will be ignored if onPress prop is undefined.
The callback that invoked when the component is pressed.
The callback that invoked when the component size is calculated.
All other props are the same as ImageBackground props which extends from Image props.
Copyright © 2023 Nguyen Hoang Lam
