@amazon-devices/react-native-vector-iconsライブラリは、Vegaでのreact-native-vector-icons(英語のみ)のサポートを提供します。このライブラリは、ボタン、ロゴ、ナビゲーションバー、タブバーを装飾するために最適な、カスタマイズ可能なベクターアイコンを提供します。これらのアイコンをプロジェクトにシームレスに統合できます。アイコンは適応性が高く、拡大やスタイル設定を簡単に行うことができます。
このライブラリはシステムにデプロイされるため、別途インストールプロセスを必要とすることなくVega向けReact Nativeアプリで利用できます。これは、アプリが実行時にリンクする自動リンクライブラリとしてデプロイされます。このライブラリは、そのライブラリがビルドされたVega向けReact Nativeのバージョンとのみ互換性があることが保証されています。
アプリのVega向けReact Nativeのバージョンをアップレベルするときは、ライブラリの依存関係をアップレベルするベストプラクティスを検討してください。
このライブラリとAPIの詳細については、GitHubリポジトリにあるREADME.md(英語のみ)を参照してください。
インストール
-
package.jsonファイルにJavaScriptライブラリの依存関係を追加します。
-
npm installコマンドを使用して、依存関係を再インストールします。 -
フォントファイルを
<app_package_root>/assets/fontsに追加します。
アップグレード
このパッケージをアップグレードするときは、プロジェクトにリンクされているフォントファイルをアップグレードしてください。自動リンクが有効な場合は、これを再実行するとフォントがアップデートされます。それ以外の場合は、インストールセクションに記載されている手順に従います。例
IconExplorer
GitHub react-native-vector-iconsリポジトリのpackages/icon-explorer(英語のみ)でIconExplorerプロジェクトを試してください。そこでは、任意のアイコンを検索することもできます。
基本的な例
アイコンを返す基本的な例:TabBar
以下の例は、TabBarの実装方法を示しています。react-navigationから抜粋した例:
APIリファレンス
Iconコンポーネント
ライブラリに付属のアイコンのいずれかを使用するか(次の例ではFontAwesome.jsのアイコンを使用しています)、独自のカスタムフォントを作成します。プロパティ
任意のTextのプロパティ(英語のみ)および以下のプロパティを使用します。メソッド
以下は静的メソッドです。 | メソッド | 説明 | |——|———– | |getFontFamily | アイコンをテキストとして取得するために現在使用されているフォントファミリーを返します。使用方法:const fontFamily = Icon.getFontFamily() | |getImageSource| Returns a promise that resolves to the source of a bitmap version of the icon for use with。component. Usage:const source = await Icon.getImageSource(name, size, color)| |getImageSourceSync| Same asgetImageSourcebut synchronous. Usage:const source = Icon.getImageSourceSync(name, size, color)| |getRawGlyphMap| Returns the raw glyph map of the icon set. Usage:const glyphMap = Icon.getRawGlyphMap()| |hasIcon| Checks if the name is valid in current icon set. Usage:const isNameValid = Icon.hasIcon(name)` |
スタイル
IconはTextコンポーネントの上に構築されるため、ほとんどのstyle propertiesは期待どおりに機能します。
次のプロパティを試してください。
backgroundColorborderWidthborderColorborderRadiuspaddingmargincolorfontSize
Icon.Buttonコンポーネント
左側にアイコンが付いたボタンを作成する便利なコンポーネントです。プロパティ
以下のプロパティに加えて、Text(英語のみ)、TouchableHighlight(英語のみ)、TouchableWithoutFeedback(英語のみ)のプロパティを使用できます。
PNG画像/ソースオブジェクトとしての使用方法
スケーラブルベクターアイコンではなくビットマップ画像に依存する他のコンポーネントと一緒に使用します。前述したように、引数としてname、size、colorを受け取ります。
Icon.getImageSourceSyncを使用することもできます。これはブロッキングメソッドのため、パフォーマンスの低下を招く可能性があることに注意してください。以降の呼び出しではキャッシュが使用されます。
マルチスタイルフォント
react-native-vector-iconsライブラリは、FontAwesome 5のようなマルチスタイルフォントをサポートしています。使用方法は標準のIconコンポーネントと似ています。
メソッド
これらのメソッドは静的で、Iconのメソッドはマルチスタイルフォントでサポートされています。
スタイル引数が渡されない場合、またはスタイル引数が無効な場合、デフォルトで定義済みのフォールバックが使用されます。
コンポーネント
Icon.Buttonがサポートされています。使用方法はIconと似ています。
カスタムフォント
createIconSet(glyphMap, fontFamily[, fontFile])
glyphMapに基づいて独自のカスタムフォントを返します。keyはアイコン名で、valueはUTF-8文字またはその文字コードです。フォントの名前はfontFamilyですが、これはファイル名ではありません。フォント名を調べるには、Font Book.appや同様のツールでフォントを開きます。
createIconSetFromFontello(config[, fontFamily[, fontFile]])
fontello(英語のみ)設定ファイルに基づいてカスタムフォントを作成できます。前述の手順に従って忘れずにフォントをインポートし、config.jsonをプロジェクト内の適切な場所に配置してください。createIconSetFromIcoMoon(config[, fontFamily[, fontFile]])
.zipに含まれている.jsonファイルを使用してください。前述の手順に従って、.ttfフォントファイルをプロジェクトにインポートします。
createMultiStyleIconSet(styles [, options])
アニメーション
React Nativeには、Animatedというアニメーションライブラリが付属しています。アイコンでこれを使用するには、const AnimatedIcon = Animated.createAnimatedComponent(Icon)というコードでアニメーションコンポーネントを作成します。

