221

Android で svg を使用し、イライラするさまざまな解像度の作成と解像度ごとのファイルのドロップを回避するために、無数のライブラリを見つけました。アプリに多くのアイコンや画像がある場合、これは非常に面倒です。

AndroidでSVGを使用するための最も簡単に使用できるライブラリのステップバイステップのプロセスを提供してくれる人は誰でも親切にできますか?これは他の多くの人にも役立つと確信しています.

また、アイコンと画像の生成には Android Studio と Illustrator を使用しています。

4

9 に答える 9

467

svgまず、簡単な手順に従ってファイルをインポートする必要があります。

  1. プロジェクトのドローアブル フォルダー (app/res/drawable) を右クリックします。
  2. 新規をクリック
  3. ベクターアセットを選択

お使いのコンピューターで画像が利用可能な場合は、ローカルsvgファイルを選択します。その後、画像のパスを選択します。必要に応じて、画像のサイズを変更するオプションもダイアログの右側で利用できます。このようsvgにして、画像がプロジェクトにインポートされます。

その後、このイメージを使用するには、同じ手順を使用します。

@drawable/yourimagename
于 2016-09-01T08:48:56.243 に答える
19

更新:この古い回答を使用しないでください。これを使用することをお勧めします: https://stackoverflow.com/a/39266840/4031815

数時間の調査の後、svg-androidは非常に使いやすいことがわかったので、ここでは手順を追って説明します。

  1. lib をダウンロード: https://code.google.com/p/svg-android/downloads/list これを書いている時点での最新バージョンは次のとおりです。svg-android-1.1.jar

  2. jarをlibdirに入れます。

  3. *.svg ファイルをres/drawabledir に保存します (イラストレーターでは、[名前を付けて保存] を押して svg を選択するのと同じくらい簡単です)。

  4. 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);
于 2015-06-18T23:02:34.653 に答える
15

Android Studio は1.4 以降の SVG をサポートしています

インポート方法の動画です。

于 2015-10-14T13:33:19.020 に答える
3

SVG2VectorDrawable プラグインを試してください。Preferences->Plugins->Browse Plugins に移動し、SVG2VectorDrawable をインストールします。サグ ファイルをベクター型ドローアブルに変換するのに最適です。インストールが完了すると、ヘルプ (?) アイコンのすぐ右にあるツールバー セクションに、このアイコンが表示されます。

于 2017-01-03T12:34:41.843 に答える