如何向React Native应用添加图标


271

我正在制作一个React Native应用程序。我想自定义应用程序图标(表示您单击以启动应用程序的图标)。我已经用谷歌搜索了,但是我一直在寻找不同类型的图标来表示不同的事物。如何将这些类型的图标添加到应用程序?


这是iOS,Android还是两者都适用?
rmevans15年

3
现在IOS但最终两个
亚当·卡茨

Answers:


427

iOS图标

  • 设置AppIconImages.xcassets
  • 添加9个不同大小的图标:
    • 29pt
    • 29pt*2
    • 29pt*3
    • 40pt*2
    • 40pt*3
    • 57pt
    • 57pt*2
    • 60pt*2
    • 60pt*3

Images.xcassets 看起来像这样:

Android图标

  • 放在ic_launcher.png文件夹中[ProjectDirectory]/android/app/src/main/res/mipmap-*/
    • 72 * 72 ic_launcher.pngmipmap-hdpi
    • 48 * 48 ic_launcher.pngmipmap-mdpi
    • 96 * 96 ic_launcher.pngmipmap-xhdpi
    • 144 * 144 ic_launcher.pngmipmap-xxhdpi
    • 192 * 192 ic_launcher.pngmipmap-xxxhdpi

更新2019 Android

最新版本的react native还支持圆形图标。对于这种特殊情况,您有两种选择:

A.添加圆形图标: 在每个mipmap文件夹中,还向ic_launcher.png文件中添加一个ic_launcher_round.png具有相同大小的圆形版本。

B.删除圆形图标: 在内部yourProjectFolder/android/app/src/main/AndroidManifest.xml删除线android:roundIcon="@mipmap/ic_launcher_round"并保存。

否则,构建会引发错误。


2
@ adam-katz,这确实应该是公认的答案。
杰森·维纳

2
直接存在于反应本机中吗?
jose920405'9

2
只是为了更新这个好答案。现在,iOS上的iPadPro还需要83.5pt * 2。
兰迪库尔曼

4
我写了一个生成器,可以从一个图标文件自动为您的react native应用生成图标:)希望它可以帮助其他人!(请参阅此答案
Almouro

5
react native文档在哪里?
GoNeale

296

我写了一个生成器,可以从一个图标文件自动为您的react native应用生成图标。它会生成您的资产,并将其正确添加到您的ios和android项目中:

更新(04/09/2019)

我们对发电机进行了更新,使其与生态系统标准保持一致。您现在可以使用@ bam.tech / react-native-make

您可以 使用以下命令安装它yarn add @bam.tech/react-native-make在react-native项目中

使用它 react-native set-icon --path <path_to_png> --background <icon_background_color> --platform <android|ios>

而且...就是这样!希望对其他人有用:)

建议:

这是对先前工具的一些改进:🥳

  • 没有Yeoman依赖性,它现在是react-native-cli插件
  • 没有Image Magick依赖
  • 为Android创建自适应图标
  • 为iOS添加缺少的图标大小

7
这应该是公认的答案。您节省了我很多时间!作为应用程序开发人员,我们真的不在乎iOS和Android需要多少图标,对于9个图标和4个图标都具有相同内容,谁在乎呢?对于视网膜还是不视网膜,对于大屏幕还是小屏幕,谁在乎?只要给我完全清楚和相同的图标即可,就是这样!谢谢,我想尝试其他工具。:)
Zhang Buzz

4
我发现了问题:安装image-magick时,请确保安装旧版工具,以便该convert命令存在。
里克·爱

2
@RickLove使用来安装imagemagick之后,我也遇到了这个问题yarn -g add imagemagick。然后,我使用homebrewbrew install imagemagick)安装了它,它安装了所有必需的东西并可以正常工作。
BeniaminoBaggins

1
@PolaEdward不需要Ruby :)所有要求都在这里:github.com/bamlab/generator-rn-toolbox/blob/master/generators/…–
Almouro

1
它起到了很大的作用,但是还是有添加圆形图标吗?这些库只是为Android添加普通图标。再次谢谢您
Amas

31

我会使用一项服务来正确缩放图标。http://makeappicon.com/似乎不错。使用较大尺寸的图像,因为按比例缩小较小的图像可能会导致较大的图标被像素化。该网站将为您提供iOS和Android的尺寸。

从那里开始,只需像设置常规本机应用程序一样设置图标即可。

https://help.apple.com/xcode/mac/8.0/#/dev10510b1f7

设置Android应用程序的图标


1
Apple链接已损坏,@ rmevans9。:(
Adam K Dean

1
请注意,此服务收集有关您的信息(例如应用程序名称,应用程序的市场类别等),并且除非提供电子邮件地址,否则会阻止图像下载。
tfmontague

我已经阅读了此答案,并且仅在一段时间后才阅读下面的Almouro的答案。我希望我先从Almouro的答案开始。
Yossi

23

通过遵循这个人的建议并使用Android Asset Studio,我能够将应用程序图标添加到我的本地原生android项目中

在这里,如果链接断开,则进行转录:

如何在React-Native Android中上传应用程序图标

1)将您的图片上传到Android Asset Studio。选择您想要应用的任何效果。该工具会为您生成一个zip文件。单击下载.Zip。

2)将文件解压缩到您的计算机上。然后将所需的图像拖到/android/app/src/main/res/文件夹中。确保将每个图像放在正确的子文件夹中mipmap-{hdpi, mdpi, xhdpi, xxhdpi, xxxhdpi}.

android / app / src / main / res

3)不要(像我最初那样)天真地将整个文件夹拖放到res文件夹上。因为您可能会/res/values/{strings,styles}.xml完全删除文件。


9

有人为此任务制作了一个非常易于使用的工具:https : //www.npmjs.com/package/app-icon

这个简单的工具使您可以在本机项目中创建单个图标,然后从中创建所有所需大小的图标。目前,它适用于iOS和Android。

我用过了 制作512x512 png,然后运行该工具并进行繁荣。超级容易。


1
PS:react-native-icon标记为已弃用,并已重命名为app-icon;npmjs.com/package/app-icon
Eirik H

8

到这里来有点晚,但是Android Studio有一个非常方便的图标资产向导。它具有很强的自我解释性,但有一些方便的作用,并且内置于:

在此处输入图片说明


您是否在Android Studio中构建本地项目?
亚当·卡兹

1
不,但是我经常出于某种原因而不得不打开它。与XCode相同-最终您需要越过另一端。这是我用来在几秒钟内生成高质量图标集的方法,非常惊讶它具有如此强烈的响应。地狱-我什至拥有自己的开源项目来为移动应用生成图标,但我仍然更喜欢这种方法。npmjs.com/package/cordova-media-generator
Ryan Knell

这太棒了-它也修饰了图标,我觉得它们很有帮助(例如此答案!)。
比拉勒·阿基尔

辉煌!好一个!
barrylachapelle

6

您需要为iOS和Android使用不同大小的图标,例如Rockvic说。另外,如果有人感兴趣,我建议您使用此站点生成大小不同的图标。您无需下载任何内容,它可以完美运行。

https://resizeappicon.com/

希望能帮助到你。




-2

我想建议使用react-native-vector-icons将图标导入您的项目。使用矢量图标时,您无需担心图标缩放方面的问题。使用该软件包时,您可以使用所有流行的图标集,例如fontawesome,ionicon等。

除了这些图标集,您还可以通过将图标打包为ttf文件,将自己的图标也带到react-native项目中,然后可以将该ttf直接导入到android和ios项目中。您可以利用相同的react-native-vector-icons库来管理这些图标

这是设置自定义图标的详细过程

https://medium.com/bam-tech/add-custom-icons-to-your-react-native-application-f039c244386c


-5

您可以导入react-native-elements并使用超赞字体图标到您的react native应用程序

安装

npm install --save react-native-elements

然后将其导入您要使用图标的位置

import { Icon } from 'react-native-elements'

像这样使用

render() {
   return(
    <Icon
      reverse
      name='ios-american-football'
      type='ionicon'
      color='#517fa4'
    />
 );
}

由于我们将名称指定为,我们如何为Android添加图标ios-american-football?或者我们可以用这种语法将ios替换为android?
ganeshdeshmukh

这没有解决原始问题。
SoluableNonagon

该帖子与启动器图标有关,与react-native-elements没有关系。该库仅用于应用程序内图标。
天体
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.