私はAndroidでsvgを使用するために無数のライブラリを発見しました。そして異なる解像度のイライラする作成と各解像度のためのファイルのドロップを避けます、これはアプリが多くのアイコンや画像を持っているとき非常に厄介になります。
誰もがAndroidでSVGを使用するための最も簡単なライブラリの使用方法を段階的に説明することができます。これは他の多くの人にも役立つでしょう。
また、私は自分のアイコンや画像を生成するためにAndroid StudioとIllustratorを使います。
まず、簡単な手順でsvg
ファイルをインポートする必要があります。
画像があなたのコンピュータで利用可能な場合は、ローカルのsvg
ファイルを選択します。その後、画像パスを選択し、必要に応じて画像のサイズを変更するオプションもダイアログの右側に表示されます。このようにしてsvg
imageがあなたのプロジェクトにインポートされます。その後、この画像を使うために同じ手順を使います。
@drawable/yourimagename
更新:しないでくださいこの古い答えを使用してください。これを使用してください。 https://stackoverflow.com/a/39266840/4031815 =
数時間の調査の後、わかりましたsvg-Androidは非常に使いやすいと思いました。
からlibをダウンロードします。 https://code.google.com/p/svg-Android/downloads/list これを書いている時点での最新版は次のとおりです。svg-Android-1.1.jar
Jarをlib
ディレクトリに入れます。
* .svgファイルをres/drawable
dirに保存します(Illustratorでは、[名前を付けて保存]を押してsvgを選択するのと同じくらい簡単です)。
Svgライブラリを使用して、アクティビティ内に次のコードをコーディングします。
ImageView imageView = (ImageView) findViewById(R.id.imgView);
SVG svg = SVGParser.getSVGFromResource(getResources(), R.drawable.example);
//The following is needed because of image accelaration in some devices such as samsung
imageView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
imageView.setImageDrawable(svg.createPictureDrawable());
非常に簡単過去のコードを含み、定型コードを減らすための単純なクラスを作成しました。
import Android.app.Activity;
import Android.view.View;
import Android.widget.ImageView;
import com.larvalabs.svgandroid.SVG;
import com.larvalabs.svgandroid.SVGParser;
public class SvgImage {
private static ImageView imageView;
private Activity activity;
private SVG svg;
private int xmlLayoutId;
private int drawableId;
public SvgImage(Activity activity, int layoutId, int drawableId) {
imageView = (ImageView) activity.findViewById(layoutId);
svg = SVGParser.getSVGFromResource(activity.getResources(), drawableId);
//Needed because of image accelaration in some devices such as samsung
imageView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
imageView.setImageDrawable(svg.createPictureDrawable());
}
}
今、私は活動の中でこのように呼ぶことができます:
SvgImage rainSVG = new SvgImage(MainActivity.this, R.id.rainImageView, R.drawable.rain);
SvgImage thunderSVG = new SvgImage(MainActivity.this, R.id.thunderImageView, R.drawable.thunder);
SvgImage oceanSVG = new SvgImage(MainActivity.this, R.id.oceanImageView, R.drawable.ocean);
SvgImage fireSVG = new SvgImage(MainActivity.this, R.id.fireImageView, R.drawable.fire);
SvgImage windSVG = new SvgImage(MainActivity.this, R.id.windImageView,R.drawable.wind);
SvgImage universeSVG = new SvgImage(MainActivity.this, R.id.universeImageView,R.drawable.universe);
あなたのapkサイズを増やすライブラリを追加するのではなく、 http://inloop.github.io/svg2Android/ を使用してSvgをdrawableに変換することをお勧めします。 gradleにvectorDrawables.useSupportLibrary = true
を追加します。
SVG2VectorDrawableプラグインを試してください。 Preferences - > Plugins - > Browse Pluginsの順に進み、SVG2VectorDrawableをインストールしてください。サグファイルをベクトルドロウアブルに変換するのに最適です。インストールが完了すると、ヘルプ(?)アイコンの右側にあるツールバーセクションにこのアイコンが表示されます。
1.1あなたはこのサイトでこれを行うことができます: http://inloop.github.io/svg2Android/ しかしそれはのようなSVGのすべての機能をサポートしていませんいくつかの勾配.
1.2あなたはAndroid Studio経由で変換することができますが、それは古いデバイスであなたのアプリをクラッシュさせる原因となるAPI 24以上をサポートするだけのいくつかの機能を使うかもしれません。
gradleファイルにvectorDrawables.useSupportLibrary = true
を追加して次のように使用します。
<Android.support.v7.widget.AppCompatImageView
Android:layout_width="match_parent"
Android:layout_height="match_parent"
app:srcCompat="@drawable/ic_item1" />
このコードをアプリケーションクラスに追加します。
public void onCreate() {
SVGLoader.load(this)
}
そしてこのようにSVGを使う:
<ImageView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:src="@drawable/ic_Android_red"/>