Cách thêm biểu tượng vào ứng dụng React Native


271

Tôi đang làm một ứng dụng React Native. Tôi muốn tùy chỉnh biểu tượng ứng dụng (có nghĩa là biểu tượng mà bạn nhấp vào để khởi động ứng dụng). Tôi đã Googled này, nhưng tôi tiếp tục tìm các loại biểu tượng khác nhau đề cập đến những thứ khác nhau. Làm cách nào để thêm các loại biểu tượng này vào ứng dụng?


Đây là cho iOS, Android hay cả hai?
rmevans9

3
bây giờ cho ios nhưng cuối cùng cho cả hai
Adam Katz

Cũng xem câu trả lời này: stackoverflow.com/a/11845815/5576491
PallavBakshi

Câu trả lời:


427

Biểu tượng iOS

  • Đặt AppIcontrong Images.xcassets.
  • Thêm 9 biểu tượng kích thước khác nhau:
    • 29pt
    • 29pt*2
    • 29pt*3
    • 40pt*2
    • 40pt*3
    • 57pt
    • 57pt*2
    • 60pt*2
    • 60pt*3.

Images.xcassets sẽ trông như thế này:

Biểu tượng Android

  • Đặt ic_launcher.pngtrong các thư mục [ProjectDirectory]/android/app/src/main/res/mipmap-*/.
    • 72 * 72 ic_launcher.pngtrong mipmap-hdpi.
    • 48 * 48 ic_launcher.pngtrong mipmap-mdpi.
    • 96 * 96 ic_launcher.pngtrong mipmap-xhdpi.
    • 144 * 144 ic_launcher.pngtrong mipmap-xxhdpi.
    • 192 * 192 ic_launcher.pngin mipmap-xxxhdpi.

Cập nhật Android 2019

Các phiên bản mới nhất của Reacigen cũng hỗ trợ biểu tượng tròn. Đối với trường hợp cụ thể này, bạn có hai lựa chọn:

A. Thêm biểu tượng tròn: Trong mỗi thư mục mipmap, thêm vào ic_launcher.pngtệp cũng có phiên bản tròn được gọi ic_launcher_round.pngvới cùng kích thước.

B. Xóa các biểu tượng tròn: Bên trong yourProjectFolder/android/app/src/main/AndroidManifest.xmlxóa dòng android:roundIcon="@mipmap/ic_launcher_round"và lưu nó.

Khác khi xây dựng ném một lỗi.


2
@ adam-katz, đây thực sự nên là câu trả lời được chấp nhận.
Jason Wiener

2
Tồn tại bất kỳ cách nào để thực hiện cho cả hai trực tiếp trong phản ứng-bản địa?
jose920405

2
Chỉ cần cập nhật câu trả lời tuyệt vời này. Bây giờ bạn cũng cần 83,5pt * 2 cho iPadPro trên iOS.
Randy Coulman

4
Tôi đã viết một trình tạo để tự động tạo biểu tượng cho ứng dụng gốc phản ứng của bạn từ một tệp biểu tượng duy nhất :) Hy vọng nó có thể giúp người khác! (Xem câu trả lời này )
Almouro

5
Điều này ở đâu trong tài liệu gốc phản ứng?
GONeale

296

Tôi đã viết một trình tạo để tự động tạo biểu tượng cho ứng dụng gốc phản ứng của bạn từ một tệp biểu tượng duy nhất. Nó tạo tài sản của bạn và nó cũng thêm chúng chính xác vào dự án ios và Android của bạn:

Cập nhật (04/09/2019)

Chúng tôi đã tân trang lại máy phát điện của mình để cập nhật các tiêu chuẩn hệ sinh thái. Bây giờ bạn có thể sử dụng @ bam.tech / Reac -igen-make .

Bạn có thể cài đặt nó bằng cách sử dụng: yarn add @bam.tech/react-native-maketrong dự án gốc-Reac

Để sử dụng nó react-native set-icon --path <path_to_png> --background <icon_background_color> --platform <android|ios>

Và ... thế thôi! Hy vọng nó có thể hữu ích cho người khác :)

Khuyến nghị:

Dưới đây là một số cải tiến so với công cụ trước:

  • Không phụ thuộc vào Yeoman, giờ đây nó là một plugin phản ứng tự nhiên
  • Không phụ thuộc Magick hình ảnh
  • Tạo biểu tượng thích ứng cho Android
  • Thêm kích thước biểu tượng bị thiếu cho iOS

7
Đây phải là câu trả lời được chấp nhận. Bạn tiết kiệm cho tôi một lượng lớn thời gian! Là nhà phát triển ứng dụng, chúng tôi thực sự không quan tâm có bao nhiêu biểu tượng iOS và Android cần, cho 9 biểu tượng và 4 biểu tượng đều có cùng một nội dung, ai quan tâm? Đối với võng mạc hay không võng mạc, đối với màn hình lớn hay nhỏ, ai quan tâm? Chỉ cần cung cấp cho tôi các biểu tượng chính xác rõ ràng và giống nhau, đó là nó! Cảm ơn bạn và tôi muốn thử các công cụ khác của bạn. :)
Zhang Buzz

4
Tôi đã tìm thấy vấn đề: Khi cài đặt image-magick, hãy đảm bảo cài đặt các công cụ cũ để convertlệnh sẽ tồn tại.
Rick Yêu

2
@RickLove Tôi cũng gặp vấn đề này sau khi cài đặt hình ảnh với yarn -g add imagemagick. Sau đó tôi đã cài đặt nó bằng cách sử dụng homebrewthay thế ( brew install imagemagick) để cài đặt mọi thứ cần thiết và hoạt động.
BeniaminoBaggins

1
@PolaEdward không cần cho Ruby :) Tất cả các yêu cầu đang ở đây: github.com/bamlab/generator-rn-toolbox/blob/master/generators/...
Almouro

1
nó đã giúp rất nhiều, nhưng dù sao cũng có thêm biểu tượng tròn? những thư viện này chỉ cần thêm các biểu tượng bình thường cho Android. cảm ơn bạn một lần nữa
Amas 28/03/19

31

Tôi sẽ sử dụng một dịch vụ để thu nhỏ biểu tượng một cách chính xác. http: // mak Ứng dụng có vẻ tốt. Sử dụng một hình ảnh ở kích thước lớn hơn khi nhân rộng một hình ảnh nhỏ hơn có thể dẫn đến các biểu tượng lớn hơn được pixel hóa. Trang web đó sẽ cung cấp cho bạn kích thước cho cả iOS và Android.

Từ đó, chỉ cần đặt biểu tượng như bạn sẽ là một ứng dụng gốc thông thường.

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

Đặt biểu tượng cho ứng dụng Android


1
Liên kết của Apple bị hỏng, @ rmevans9. :(
Adam K Dean

1
Lưu ý dịch vụ này thu thập thông tin về bạn - chẳng hạn như tên ứng dụng, danh mục thị trường của ứng dụng, v.v. - và ngăn tải xuống hình ảnh trừ khi được cung cấp địa chỉ email.
tfmontague

Tôi đã đọc câu trả lời này và chỉ sau một thời gian đọc câu trả lời của Almouro bên dưới. Tôi ước tôi bắt đầu với câu trả lời của Almouro.
Yossi

23

Tôi đã có thể thêm biểu tượng ứng dụng vào dự án Android gốc phản ứng của mình bằng cách làm theo lời khuyên của anh chàng này và sử dụng Android Asset Studio

Đây là, phiên âm trong trường hợp liên kết bị chết:

Cách tải lên Biểu tượng ứng dụng trong React-Native Android

1) Tải hình ảnh của bạn lên Android Asset Studio . Chọn bất kỳ hiệu ứng nào bạn muốn áp dụng. Công cụ tạo tệp zip cho bạn. Nhấp vào Tải xuống .Zip.

2) Giải nén tập tin trên máy của bạn. Sau đó kéo qua các hình ảnh bạn muốn vào /android/app/src/main/res/thư mục của bạn . Đảm bảo đặt từng ảnh vào thư mục con bên phảimipmap-{hdpi, mdpi, xhdpi, xxhdpi, xxxhdpi}.

android / ứng dụng / src / chính / res

3) Đừng (như tôi ban đầu đã làm) ngây thơ kéo và thả toàn bộ thư mục trên thư mục res của bạn. Như bạn có thể loại bỏ các /res/values/{strings,styles}.xmltập tin của bạn hoàn toàn.


9

Ai đó đã tạo một công cụ rất dễ sử dụng chỉ cho nhiệm vụ này: https://www.npmjs.com/package/app-icon

Công cụ đơn giản này cho phép bạn tạo một biểu tượng duy nhất trong dự án gốc phản ứng của mình, sau đó tạo biểu tượng với tất cả các kích thước bắt buộc từ nó. Nó hiện đang hoạt động cho iOS và Android.

Tôi đã sử dụng nó. Tạo một 512x512 png và sau đó chạy công cụ đó và bùng nổ, xong. Siêu dễ.


1
PS: Reac -igen-icon được đánh dấu là không dùng nữa và đã được đổi tên thành biểu tượng ứng dụng; npmjs.com/package/app-icon
Eirik H

8

Đến hơi muộn ở đây nhưng Android Studio có trình hướng dẫn tài sản biểu tượng rất tiện dụng. Nó rất tự giải thích nhưng có một vài hiệu ứng tiện dụng và được tích hợp ngay trong:

nhập mô tả hình ảnh ở đây


Bạn có xây dựng các dự án trực tiếp của mình trong Android Studio không?
Adam Katz

1
Không, nhưng tôi thường xuyên phải mở nó vì lý do này hay lý do khác. Tương tự với XCode - cuối cùng bạn cần phải vượt qua phía bên kia. Đây là phương pháp tôi sử dụng để tạo các bộ biểu tượng chất lượng cao trong vài giây, rất ngạc nhiên vì nó đã có phản ứng mạnh mẽ như vậy. Địa ngục - Tôi thậm chí còn sở hữu dự án nguồn mở của riêng mình để tạo biểu tượng cho các ứng dụng di động và tôi vẫn thích phương pháp này. npmjs.com/package/cordova-media-generator
Ryan Knell

Điều này thật tuyệt vời - nó cũng đã chỉnh sửa các biểu tượng mà tôi thấy siêu hữu ích (như câu trả lời này!).
Bilal Akil

Xuất sắc! Đẹp quá
barrylachapelle

6

Bạn sẽ cần các biểu tượng có kích thước khác nhau cho iOS và Android, như Rockvic nói. Ngoài ra, tôi khuyên bạn nên trang web này để tạo các biểu tượng có kích thước khác nhau nếu có ai quan tâm. Bạn không cần phải tải xuống bất cứ thứ gì và nó hoạt động hoàn hảo.

https://resizimicon.com/

Hy vọng nó giúp.




-2

Tôi muốn đề nghị sử dụng các biểu tượng phản ứng-gốc-vector để nhập các biểu tượng vào dự án của bạn. Khi bạn sử dụng các biểu tượng vector, bạn không cần phải lo lắng nhiều về tỷ lệ biểu tượng. Trong khi sử dụng gói, bạn có thể sử dụng tất cả các bộ biểu tượng phổ biến như fontawgie, ionicons, v.v.

Bên cạnh các bộ biểu tượng này, bạn cũng có thể mang các biểu tượng của riêng mình cho dự án gốc phản ứng của bạn bằng cách đóng gói các biểu tượng của bạn dưới dạng tệp ttf và bạn có thể nhập trực tiếp ttf đó cho cả dự án android và ios. Bạn có thể sử dụng cùng thư viện biểu tượng phản ứng-gốc-vector để quản lý các biểu tượng đó

Dưới đây là một quy trình chi tiết để thiết lập các biểu tượng tùy chỉnh

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


-5

Bạn có thể nhập các phần tử phản ứng gốc và sử dụng các biểu tượng phông chữ tuyệt vời cho ứng dụng gốc phản ứng của bạn

Tải về

npm install --save react-native-elements

sau đó nhập vào nơi bạn muốn sử dụng biểu tượng

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

Sử dụng nó như

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

Làm cách nào để thêm biểu tượng cho Android, vì chúng tôi chỉ định tên là ios-american-football? hoặc chúng ta có thể thay thế ios bằng Android theo cú pháp này?
ganeshdeshmukh

Điều này không giải quyết câu hỏi ban đầu.
SoluableNonagon

Bài viết là về biểu tượng launcher và không liên quan gì đến các yếu tố phản ứng-bản địa. Thư viện chỉ dành cho các biểu tượng trong ứng dụng.
Celestial
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.