Reputation: 6962
I am making a React Native app. I would like to customize the app icon (meaning the icon that you click on to start the app). I have Googled this, but I keep finding different types of icons that refer to different things. How do I add these types of icons to the app?
Upvotes: 360
Views: 247110
Reputation: 54
I recommend to Monicon in 2025, it's deal great developer experience
Local Collections in Monicon allow you to use icons stored locally on your file system. These collections can be loaded using the loadLocalCollection
function, which points to the directory containing your SVG files. This setup is ideal for projects where icons are managed locally, providing a quick and flexible way to integrate custom icon sets.
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import monicon from "@monicon/vite";
import { loadLocalCollection } from "@monicon/loader";
export default defineConfig({
plugins: [
react(),
monicon({
customCollections: {
local: loadLocalCollection("assets/icons"),
},
}),
],
});
For the above configuration, your assets/icons directory might look like this:
assets/
└── icons/
├── folder.svg
├── user.svg
└── network.svg
Each SVG file in the directory is automatically assigned a name based on its filename (e.g., folder
for folder.svg
).
You can now use Monicon in your React components. Here’s an example of how to use an icon from your local collection in a React component:
import { Monicon } from "@monicon/react";
function App() {
return (
<main>
<Monicon name="local:folder" size={24} />
<Monicon name="local:user" size={24} />
<Monicon name="local:network" size={24} />
</main>
);
}
export default App;
Upvotes: -1
Reputation: 175
Steps Android App icons: Go to this website https://appicon.co/
Add image their and generate icons, it should be downloaded
Unzip the folder
Inside their copy all the folders in AppIcons/android/ (i.e. Folder names: mipmap-xxxhdpi,mipmap-xxhdpi,mipmap-xhdpi,mipmap-hdpi,mipmap-mdpi)
paste above copied folders into {rootFolder}/android/app/src/main/res/ and replace existing ones
Remove this line from AndroidManifest.xml
(android:roundIcon="@mipmap/ic_launcher_round")
Icons are successfully added
Change IOS App icons: Go to this website https://appicon.co/
Add image their and generate icons, it should be downloaded
Unzip the folder
Inside their copy all the folders in AppIcons/Assets.xcassets/ (i.e. AppIcon.appiconset folder)
paste the AppIcon.appiconset folder into {rootFolder}/ios/{projectname}/Images.xcassets/ and replace existing one
Icons are successfully added
Upvotes: 8
Reputation: 294
Since the Almouro's Answer is no longer maintained
You can now generate icons with one command both for iOS and Android with rounded icon:
npx icon-set-creator create ./path/to/icon.png
I highly recommend using an icon with a size of at least 1024x1024 pixels
npx icon-set-creator create -b <background> -f <foreground> -A
background - The color (E.g. "#ffffff") or image asset (E.g. "assets/images/christmas-background.png")
foreground - The image asset (E.g. "assets/images/christmas-foreground.png")
Upvotes: 13
Reputation: 211
Use this library to make your work easier. It will automate your Icon generation process
https://www.npmjs.com/package/@bam.tech/react-native-make
Upvotes: 1
Reputation: 961
For setting the App launch icon for Android Devices in a React-Native project:
Official documentation can be found here: https://developer.android.com/studio/write/image-asset-studio
Upvotes: 3
Reputation: 108
To import icons on React Native if you want the icons without having the pictures, then react-native-vector-icons would be the best one. You can use it if you don't want to download the icons and use it in your project.
Upvotes: -1
Reputation: 6332
Android Studio has a very handy icon asset wizard called Image Asset Studio (user guide here). It's quite self explainatory, and has a few handy effects and it's built right in:
Screenshot from Android Studio 4.1.3 on Windows 10
Upvotes: 14
Reputation: 175
I personally use this link to generate my desired icons https://appicon.co/
And for importing inside the application.
For IOS Setup
Click on your project from Xcode ==>
then on the left side you will see your click on that ==>
Now you will see subfile name Images.xcassets click on that ==>
you icons size will be displayed on the right hand window ==>
simply drag and drop the icons which we have generated from https://appicon.co/ ==>
and your IOS ICON SETUP IS DONE.
Moving to Android
We will go to Android ==> app ==> src ==> main ==> res
Here you will various folders named mipmap-hdpi till xxxhdpi ==>
Drag the icons from the specific folder to your project specific folder. Happy coding!
Upvotes: -1
Reputation: 6524
I wrote a generator to automatically generate icons for your react native app from a single icon file. It generates your assets and it also adds them correctly to your ios and android project:
We revamped our generator to be up to date with the ecosystem standards. You can now use @bam.tech/react-native-make.
You can install it using: yarn add @bam.tech/react-native-make
in the react-native project
To use it react-native set-icon --path <path_to_png> --background <icon_background_color> --platform <android|ios>
And... that's it! Hope it can be useful for others :)
Recommendations:
Here are some improvements over the previous tool: 🥳
Upvotes: 353
Reputation: 2339
This is helpful for people struggling to find better site to generate icons and splashscreen
Upvotes: 8
Reputation: 5434
AppIcon
in Images.xcassets
.29pt
29pt*2
29pt*3
40pt*2
40pt*3
57pt
57pt*2
60pt*2
60pt*3
.Images.xcassets
will look like this:
ic_launcher.png
in folders [ProjectDirectory]/android/app/src/main/res/mipmap-*/
.
ic_launcher.png
in mipmap-hdpi
.ic_launcher.png
in mipmap-mdpi
.ic_launcher.png
in mipmap-xhdpi
.ic_launcher.png
in mipmap-xxhdpi
.ic_launcher.png
in mipmap-xxxhdpi
.The latest versions of react native also supports round icon. For this particular case, you have two choices:
A. Add round icons:
In each mipmap folder, add additionally to the ic_launcher.png
file also a round version called ic_launcher_round.png
with the same size.
B. Remove round icons:
Inside yourProjectFolder/android/app/src/main/AndroidManifest.xml
remove the line android:roundIcon="@mipmap/ic_launcher_round"
and save it.
Otherwhise the build throws an error.
Upvotes: 541
Reputation: 5643
I would use a service to scale the icon correctly. http://makeappicon.com/ seems good. Use a image on the larger size as scaling up a smaller image can lead to the larger icons being pixelated. That site will give you sizes for both iOS and Android.
From there its just a matter of setting the icon like you would a regular native app.
https://help.apple.com/xcode/mac/8.0/#/dev10510b1f7
Set icon for Android application
Upvotes: 35
Reputation: 116
If you're using expo just place an 1024 x 1024 png file in your project and add an icon property to your app.json i.e. "icon": "./src/assets/icon.png"
https://docs.expo.io/versions/latest/guides/app-icons
Upvotes: 2
Reputation: 46607
Someone made a very easy to use tool just for this task: https://www.npmjs.com/package/app-icon
This simple tool allows you to create a single icon in your react-native project, then create icons of all required sizes from it. It currently works for iOS and Android.
I've used it. Made a 512x512 png and then ran that tool and boom, done. Super easy.
Upvotes: 13
Reputation: 13
You can import react-native-elements and use the font-awesome icons to your react native app
Install
npm install --save react-native-elements
then import that where you want to use icons
import { Icon } from 'react-native-elements'
Use it like
render() {
return(
<Icon
reverse
name='ios-american-football'
type='ionicon'
color='#517fa4'
/>
);
}
Upvotes: -10
Reputation: 929
I would like to suggest to use react-native-vector-icons to import icons to your project. As you use vector icons, you don't need to worry much on icon scaling side. While using the package you are able to use all popular icon set such as fontawesome, ionicons etc..
Besides these iconsets you can also bring your own icons too to your react-native project by packing your icons as a ttf file and you can import that ttf directly to both android and ios project. You can utilise the same react-native-vector-icons library to manage those icons
Here is a detailed procedure to setup custom icons
https://medium.com/bam-tech/add-custom-icons-to-your-react-native-application-f039c244386c
Upvotes: -4
Reputation: 2032
You'll need different sized icons for iOS and Android, like Rockvic said. In addition, I recommend this site for generating different sized icons if anybody is interested. You don't need to download anything and it works perfectly.
Hope it helps.
Upvotes: 8
Reputation: 659
I was able to add an app icon to my react-native android project by following this guy's advice and using Android Asset Studio
Here it is, transcribed in case the link goes dead:
How to upload an Application Icon in React-Native Android
1) Upload your image to Android Asset Studio. Pick whatever effects you’d like to apply. The tool generates a zip file for you. Click Download .Zip.
2) Unzip the file on your machine. Then drag over the images you want to your /android/app/src/main/res/
folder. Make sure to put each image in the right subfolder mipmap-{hdpi, mdpi, xhdpi, xxhdpi, xxxhdpi}.
3) Do not (as I originally did) naively drag and drop the whole folder over your res folder. As you may be removing your /res/values/{strings,styles}.xml
files altogether.
Upvotes: 28