前のパートでは、Android 4.0+用のVectorDrawableを実装するBetterVectorDrawableライブラリについて説明しました 。
このパートでは、画像をSVGからベクトル描画可能XMLに変換する方法について説明します。
Androidは、XMLリソースを読み取るときに、現在のデバイスでサポートされていない属性を無視します。 これは、ベクター描画可能XMLのサポートされていない属性を名前空間に複製する必要があることを意味します
schemas.android.com/apk/res-auto
schemas.android.com/apk/res-autoを使用すると、BetterVectorDrawableがそれらを読み取ることができます。 例:
<vector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:better="http://schemas.android.com/apk/res-auto" android:width="100dp" android:height="100dp" android:viewportHeight="100" android:viewportWidth="100" better:viewportHeight="100" better:viewportWidth="100"> …
この場合、サポートされていない属性のみを複製する必要があります(リストはここで表示できます
android:
プレフィックスなしの属性を参照してください)。
幸いなことに、コンバータはこれをすべて私たちのために行っており、それについて考える必要さえありません。
SVGからVectorDrawableへのコンバーター
このコンバーターを使用すると、Android 5.0以降とBetterVectorDrawableライブラリの両方のベクター描画可能リソースを作成できます。 これは、コマンドライン引数を使用して制御されます。
コンバーターはクロスプラットフォームコンソールアプリケーションです。WindowsまたはOS Xで実行できます。その操作のために、依存関係をインストールする必要があります。これについては後で説明します。 コンバーター自体は、実行可能ファイルとともにアーカイブとして配布されます。このファイルは、 こちらからダウンロードできます 。
アーカイブを解凍し、Windowsのコンソール(OS Xのターミナル)を開いて、現在のディレクトリをコンバーターのあるディレクトリに変更する必要があります。
変換を開始するコマンドは次のようになります。
[mono] svg2vd.exe -i in_dir/\* -o out_dir [--lib BetterVectorDrawable]
オプションのパラメーターは角括弧で示されています(ただし、角括弧なしで使用されます)。
- OS Xでコンバーターを実行している場合は、
mono
を指定する必要があります -
--lib BetterVectorDrawable
は、サポートされていない属性を出力XMLに複製する場合に指定する必要があります。 SetterをBetterVectorDrawableライブラリのベクトル描画可能XMLに変換します。そうしないと、コンバーターはAndroid 5.0以降のベクトル描画可能リソースを作成します。
残りのパラメーターは明確だと思います。
--help
引数はその説明を出力します。
依存関係のインストール
窓がある場合
Microsoft .NET Framework
Windows 8以降を使用している場合は、この項目をスキップできます。
システムには、.NET Framework 4.5+がインストールされている必要があります。 この指示に従って、インストールされている.NET Frameworkのバージョンを確認できます。 ここから.NET Framework 4.5をダウンロードします。
Inkscape
Inkscapeは、無料のオープンソースのベクターグラフィックエディターです。 Windowsでのインストールは、プログラムの通常のインストールと変わりません。 こちらからダウンロードできます。
OS Xを使用している場合
OS X 10.7以降が必要です。
モノ
ここから Monoをダウンロードできます。 インストール私は難なく行きました。
Inkscape
Inkscapeは、無料のオープンソースのベクターグラフィックエディターです。 OS Xでインストールするには、まずXQuartzをインストールする必要があります。その後、コンピューターを再起動するか、終了して再度ログインする必要があります。
Inkscapeはこちらからダウンロードできます。 インストール後にInkscapeが自由に起動することを確認してください。 システム環境設定でロックを解除する必要がありました... → セキュリティとプライバシー → 一般 。 ロックをクリックして変更を加え 、Inkscapeの起動をロック解除する必要があります。
何か問題がある場合は、私に手紙を書くことができます。 問題のあるSVGファイルへのリンクを追加して 、コンバーターの問題をGitHubの開発者に報告することをお勧めします。
ご清聴ありがとうございました。
アップデート09/10/2015: コンバーターのオンラインバージョンが登場しました 。