Android 4.0以降では、異なる画面密度にスライスするのではなく、画像のベクター形式に簡単に切り替えます。 パート2/2





前のパートでは、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]
      
      





オプションのパラメーターは角括弧で示されています(ただし、角括弧なしで使用されます)。



残りのパラメーターは明確だと思います。 --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: コンバーターオンラインバージョンが登場しました



All Articles