【React Native】「react-native-svg」ライブラリを使って表示したSVG画像の色を変更する

昨日の記事で、React Native のアプリに SVG 画像を表示する方法についてご紹介しましたが、今回はその表示した画像を塗りつぶす色を変更する方法についてです。

 

と言っても色の変更方法は簡単で、fill に変更したい色を指定するだけです。
サンプルコードは下記のとおりです。
まず、表示したい画像を下記のように取得します。

import { SvgCssUri } from 'react-native-svg';
import resolveAssetSource from 'react-native/Libraries/Image/resolveAssetSource';
 
const file = require('[SVG ファイルのパス]');
const svg = resolveAssetSource(file);

あとは下記のように記述すれば、画像が表示されます。

<SvgCssUri uri={svg.uri} width="100%" height="100%" fill='[変更したい色]' />

で、この時に fill で画像を塗りつぶしたい色を指定すればOKです。

しかし、私の環境では上記のように指定しても色が変わらず…。
で、表示している SVG 画像のソースを確認したところ、fill で直接色が指定されていたのが原因でした。
そのため、SVG ファイルのソースから、fill の設定値をごっそり削除した後、再度アプリを実行したところ、無事に色が変更できました!
色が変わらない原因が画像ファイルにある事に早めに気がつけて良かったです…!

 

以上、React Native の「react-native-svg」ライブラリを使って表示した SVG 画像の塗りつぶしの色を変更する方法についてでした。
ご参考になれば幸いです。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG