React Native is a mobile development that’s based on React that we can use to do mobile development.
In this article, we’ll look at how to use it to create an app with React Native.
StatusBar
The StatusBar
lets us control the status bar with our app.
For example, we can write:
import React, { useState } from 'react';
import { Button, StyleSheet, StatusBar, View } from "react-native";
import Constants from "expo-constants";
export default function App() {
const [visibleStatusBar, setVisibleStatusBar] = useState(false);
const changeVisibilityStatusBar = () => {
setVisibleStatusBar(!visibleStatusBar);
};
return (
<View style={styles.container}>
<StatusBar backgroundColor="blue" barStyle='dark-content' />
<View>
<StatusBar hidden={visibleStatusBar} />
</View>
<View style={styles.buttonContainer}>
<Button title="Toggle StatusBar" onPress={() => changeVisibilityStatusBar()} />
</View>
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
marginTop: Constants.statusBarHeight,
},
scrollView: {
flex: 1,
backgroundColor: 'pink',
alignItems: 'center',
justifyContent: 'center',
},
});
We added a StatusBar
that can be toggled with the hidden
prop.
And we also added one that has the backgroundColor
set to 'blue'
.
The barStyle
sets the status bar style, which is 'dark-content'
.
It can also be set to 'default'
and ‘light-content’
.
Image Style Props
We can set our image to display with the style we want.
For example, we can write:
import React from 'react';
import { View, Image } from "react-native";
export default function App() {
return (
<View>
<Image
style={{
resizeMode: "cover",
height: 100,
width: 200
}}
source={{ uri: 'https://i.picsum.photos/id/23/200/300.jpg?hmac=NFze_vylqSEkX21kuRKSe8pp6Em-4ETfOE-oyLVCvJo' }}
/>
</View>
);
}
to set the width
and height
.
The resizeMode
sets how the image is resized.
We can set it to 'cover'
, 'contain'
, 'stretch'
, 'repeat'
, or 'center'
.
Also, we can set the tint color. For example, we can write:
import React from 'react';
import { View, Image } from "react-native";
export default function App() {
return (
<View>
<Image
style={{
tintColor: "lightgreen",
resizeMode: "contain",
height: 100,
width: 200
}}
source={{ uri: 'https://i.picsum.photos/id/23/200/300.jpg?hmac=NFze_vylqSEkX21kuRKSe8pp6Em-4ETfOE-oyLVCvJo' }}
/>
</View>
);
}
Then we can see that the image is a light green box instead of showing the original image.
Also, we can add a border around our image.
For example, we can write:
import React from 'react';
import { View, Image } from "react-native";
export default function App() {
return (
<View>
<Image
style={{
borderColor: "red",
borderWidth: 5,
height: 100,
width: 200
}}
source={{ uri: 'https://reactnative.dev/docs/assets/p_cat2.png' }}
/>
</View>
);
}
We set the borderColor
to 'red'
and borderWidth
to 5 to add the border.
Also, we can add border-radius to an image by writing:
import React from 'react';
import { View, Image } from "react-native";
export default function App() {
return (
<View>
<Image
style={{
borderTopLeftRadius: 10,
borderTopRightRadius: 10,
borderBottomLeftRadius: 10,
borderBottomRightRadius: 10,
height: 100,
width: 200
}}
source={{ uri: 'https://i.picsum.photos/id/23/200/300.jpg?hmac=NFze_vylqSEkX21kuRKSe8pp6Em-4ETfOE-oyLVCvJo' }}
/>
</View>
);
}
We set the border-radius for the image for each corner with these properties.
Conclusion
We can control the status bar and manipulate images with React Native.