Animated splash screen component for React Native project.
npm install @freakycoder/react-native-animated-splash-screenAnimated splash screen for Android and iOS. It is based on Implementing Twitter’s App Loading Animation in React Native topic from RN. This use an Image instead of MaskedView to work on both platforms.
![license]()


!GitHub issues


SplashAnimated example app.
- [x] Custom background color.
- [x] Custom logo.
- [x] Custom logo size.
yarn add react-native-animated-splash-screen
ornpm install --save react-native-animated-splash-screen
``javascript
import AnimatedSplash from "react-native-animated-splash-screen";
render() {
return (
logoImage={require("./assets/logo.png")}
backgroundColor={"#262626"}
disableBackgroundImage
logoHeight={150}
logoWidht={150}
>
);
}
`
| Name | Description | Type | Required | Default Value |
| :--------------------- | :--------------------------------------------------------------------- | :------ | :------: | :---------------------------------------------------------: |
| isLoaded | Condition to show children component and finish the animation. | Boolean | ✓ | |
| backgroundColor | Splash screen background color. | String | | !#f00 '#f00' |px
| logoImage | Splash screen logo image. | Object | ✓ | |
| logoWidth | Logo image width in . | Number | | 150 |px
| logoHeight | Logo image height in . | Number | | 150 |null
| children | Children to render inside this component. | Node | | |
| preload | Condition to load children component while wait isLoaded prop be True. | Boolean | | true |
| disableBackgroundImage | disable the background image | Boolean | | false |
`javascript
const AppNavigator = createStackNavigator(
{
home: {
screen: HomeScreen,
navigationOptions: {
header: null,
},
},
dashboard: {
screen: DashboardScreen,
navigationOptions: {
title: "Dashboard",
},
},
},
{
initialRouteName: "home",
}
);
const Container = createAppContainer(AppNavigator);
class App extends React.Component {
state = {
isLoaded: false,
};
async componentDidMount() {
await loadAsync();
this.setState({ isLoaded: true });
}
render() {
return (
logoImage={require("./assets/logo.png")}
backgroundColor={"#262626"}
logoHeight={150}
logoWidht={150}
>
);
}
}
export default App;
`
#### Navigator
`javascript
const AppNavigator = createSwitchNavigator(
{
home: {
screen: (props) => (
),
},
dashboard: { screen: DashboardScreen },
},
{
initialRouteName: "home",
}
);
const Container = createAppContainer(AppNavigator);
class App extends React.Component {
state = {
isLoaded: false,
};
setAppLoaded = () => {
this.setState({ isLoaded: true });
};
render() {
return (
logoImage={require("./assets/logo.png")}
backgroundColor={"#262626"}
logoHeight={150}
logoWidht={150}
>
);
}
}
export default App;
`
#### HomeScreen
`javascript
class HomeScreen extends React.Component {
...
async componentDidMount() {
await loadAsync();
this.props.setAppLoaded();
}
...
}
export default HomeScreen
``
MIT