as

Settings
Sign out
Notifications
Alexa
Amazonアプリストア
AWS
ドキュメント
Support
Contact Us
My Cases
開発
設計と開発
公開
リファレンス
サポート

react-native-svg

react-native-svg

@amazon-devices/react-native-svgは、Vega上のReact Nativeとウェブ用の互換レイヤーにSVGサポートを提供します。

@amazon-devices/react-native-svgは、Rect、Circle、Line、Polyline、Polygon、Gなど、SVGのほとんどの要素とプロパティをサポートしています。このライブラリを使用すると、SVGコード(英語のみ)からreact-native-svgコンポーネントへのシンプルな変換を行うことができます。

このライブラリはシステムにデプロイされるため、別途インストールプロセスを必要とすることなくVega向けReact Nativeアプリで利用できます。これは、アプリが実行時にリンクする自動リンクライブラリとしてデプロイされます。ライブラリとVega向けReact Nativeとの互換性は、ライブラリがターゲットとしているVega向けReact Nativeバージョンとの間でのみ保証されます。

アプリのビルドに使用しているVega向けReact Nativeのバージョンを上げる場合は、ベストプラクティスとして、Vega向けReact Nativeに依存するライブラリのバージョンもアップグレードすることをお勧めします。

インストール

  1. package.jsonファイルにJavaScriptライブラリの依存関係を追加します。

    クリップボードにコピーしました。

     "dependencies": {
         ...
         "@amazon-devices/react-native-svg": "~2.0.0"
    }
    
  2. npm installコマンドを使用して、依存関係を再インストールします。

以下の例は、Circleコンポーネントをレンダリングする方法を示しています。

クリップボードにコピーしました。

import { Circle, Svg } from '@amazon-devices/react-native-svg';
import React from 'react';
import { StyleSheet, View } from 'react-native';

const CircleExample = () => {
  return (
    <Svg height="100" width="100">
      <Circle cx="50%" cy="50%" r="40%" fill="pink" />
    </Svg>
  );
};

const App = () => {
  return (
    <View style={styles.container}>
      <CircleExample />
    </View>
  );
};

const styles = StyleSheet.create({
  container: {
    backgroundColor: 'white',
    flex: 1,
  },
});

export default App;

以下の例は、Polygonコンポーネントをレンダリングする方法を示しています。

クリップボードにコピーしました。

import { G, Polygon, Svg } from '@amazon-devices/react-native-svg';
import React from 'react';
import { StyleSheet, View } from 'react-native';

const StarExample = () => {
  return (
    <Svg height="105" width="105">
      <G scale="0.5">
        <Polygon
          points="100,10 40,198 190,78 10,78 160,198"
          fill="lime"
          stroke="purple"
          strokeWidth="5"
        />
      </G>
    </Svg>
  );
};

const App = () => {
  return (
    <View style={styles.container}>
      <StarExample />
    </View>
  );
};

const styles = StyleSheet.create({
  container: {
    backgroundColor: 'white',
    flex: 1,
  },
});

export default App;

APIリファレンス

このライブラリの情報、APIリファレンス、その他の詳細については、GitHub(英語のみ)で専用のドキュメントページを参照してください。

VegaのSVGライブラリは、以下に示すSVGコンポーネントとタッチイベントのサポートを追加します。

コンポーネント

コンポーネント 説明
Svg ほかの要素のためのHOC。
Rect 四角形や四角形のバリエーションを作成します。
Circle 円を作成します。
Ellipse 楕円を作成します。楕円は円と密接に関係しています。相違点として、楕円ではX半径とY半径が互いに異なるのに対し、円ではX半径とY半径が等しくなります。
Line SVGの基本図形です。2点を結ぶ線を作成します。
Path パスを定義します。
Text テキストを定義します。
TSpan SVGで複数行のテキストを描画します。テキストの各行を絶対位置で配置しなくても、前の行に合わせて相対的に配置できます。
G ほかのSVG要素をグループ化するために使用されるコンテナです。
Image ラスター画像をSvgコンポーネントに含めることができます。
ClipPath クリッピングパスを定義します。クリッピングパスは、clipPathプロパティを通じて使用/参照されます。
Use SVGドキュメント内のほかの場所にあるSVG図形を再利用できます。
Defs SVG画像内で再利用できる定義を埋め込みます。
RadialGradient 放射グラデーションを定義します。この要素は<Defs>タグ内に入れ子にする必要があります。
LinearGradient 線形グラデーションを定義します。この要素は、<Defs>タグまたは<Svg>タグ内に入れ子にする必要があります。
Mask SVGでは、現在のオブジェクトを背景に合成するためのアルファマスクとして、ほかの任意のグラフィックオブジェクトまたはG要素を使用するように指定できます。

タッチイベント

イベント
disabled
onPress
onPressIn
onPressOut
onLongPress
delayPressIn
delayPressOut
delayLongPress

Vegaでの例外

サポートされていないAPI

以下のAPIは、Vegaでは現在サポートされていません。

  • 次のSVGコンポーネントは機能しません。
    • Marker
    • TouchEvent
    • PatternpatternTransformはまだサポートされていません

サポートされていないコンポーネント

以下の表に示すSVGコンポーネントは、Vegaでは現在サポートされていません。

コンポーネント 説明
Polygon 3つ以上の面を含むグラフィックを作成します。ポリゴンとは、直線で構成される「閉じた」(すべての線がつながっている)図形です。
Polyline 直線だけで構成される任意の図形を作成します。
TextPath SVGには、直線状に描画されるテキストのほかに、要素の形状に沿ってテキストを配置する機能も含まれています。テキストブロックが要素の形状に沿ってレンダリングされるようにするには、href属性を含む要素内に、その要素への参照と併せて指定のテクストを含めます。
Symbol 再利用可能なシンボルを定義します。
Pattern パターンは、あらかじめ定義されたグラフィックオブジェクトを使用して、オブジェクトに塗りつぶしやストロークを適用するために使用されます。描画する領域をカバーするように、グラフィックオブジェクトをX方向とY方向に一定間隔で複製(タイル状に配置)できます。
Marker マーカーとは、「path」、「line」、「polyline」、「polygon」要素の1つ以上の頂点に関連付けられるシンボルです。通常、マーカーは矢印やポリマーカーを作成するために使用されます。
ForeignObject SVG以外の名前空間の要素を含めることができます。この要素は、ほかのユーザーエージェントプロセスを使用してSVGグラフィックの領域内にレンダリングされます。

サポートされているバージョン

パッケージ名 Amazon NPMライブラリのバージョン Vega OSのビルド番号 Vega SDKバージョン リリースノート
@amazon-devices/react-native-svg 2.1.0+13.14.0 OS 1.1 (201010438050) 0.20  

関連リソース

その他のライブラリについては、サポート対象のサードパーティのライブラリとサービスを参照してください。


Last updated: 2025年9月30日