2015-06-18 9 views
21

Ich habe eine Vielzahl von Bibliotheken gefunden, um Svg in Android zu verwenden und die frustrierende Erstellung unterschiedlicher Auflösungen und das Löschen von Dateien für jede Auflösung zu vermeiden, was sehr ärgerlich wird, wenn die App viele Icons oder Bilder enthält.einfachste Möglichkeit, Svg in Android zu verwenden?

Kann jemand so freundlich sein, einen Schritt für Schritt Prozess der einfachsten zu Bibliothek für die Verwendung von SVG in Android zu verwenden, bin ich mir sicher, dass dies auch vielen anderen helfen wird.

Auch ich benutze Android Studio und Illustrator zum Generieren meiner Symbole und Bilder.

+0

Mögliche Duplikate von [Was sind Best Practices für die Verwendung von SVG-Symbolen auf Android?] (Http://StackOverflow.com/questions/9647770/what-are-best-practices-for-using -svg-icons-on-android) –

Antwort

15

UPDATE: Please notice this answer is from 2015, and there might better and easier ways to use svg in Android at the present moment. So take this answer with a grain of salt.

Ok nach einigen Stunden der Forschung fand ich svg-android als sehr einfach zu bedienen, so dass ich verlasse hier Schritt für Schritt Anleitung:

  1. herunterladen lib aus: https://code.google.com/p/svg-android/downloads/list Neueste Version zur Zeit der Abfassung dieses ist: svg-android-1.1.jar

  2. Put Glas in lib dir.

  3. Speichern Sie Ihre * .svg-Datei in res/drawable dir (In Illustrator ist so einfach wie das Drücken Speichern unter, und wählen Sie svg)

  4. -Code die in Ihrer Aktivität im Anschluss an die svg-Bibliothek:

    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()); 
    



Sie reduzieren kann vorformulierten Code wie folgt

Sehr einfach ich eine einfache Klasse gemacht Vergangenheit Code enthalten und vorformulierten Code zu reduzieren, wie folgt aus:

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()); 
    } 
} 

Jetzt ist es wie dies in der Aktivität nenne ich kann:

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); 
+3

Sie sollten erwägen, Ihre eigene Antwort als akzeptiert anstelle der vorherigen zu markieren –

+0

Wenn ich versuche, SVG-Dateien hinzuzufügen, bekomme ich Fehler, der sagt, Fehler: Der Dateiname muss mit .xml oder enden. png –

+1

Warum ist 'imageView'' statisch'? Ich sehe hier eine riesige rote Insektenflagge. 'SvgImage rainSVG = neu SvgImage (MainActivity.this, R.id.rainImageView, R.drawable.rain); SvgImage thunderSVG = neu SvgImage (MainActivity.this, R.id.thunderImageView, R.drawable.thunder); ' rainSVG enthält thunderImageView – DSchmidt

30

Zuerst müssen Sie svg Dateien importieren, indem Sie die folgenden einfachen Schritte ausführen.

  1. Rechtsklick auf ziehbar
  2. Klicken Sie auf neue
  3. Select Vector Asset-

Wenn Bild in Ihrem Computer verfügbar ist dann lokale svg Datei auswählen. Danach wählen Sie den Bildpfad und eine Option zum Ändern der Größe des Bildes ist auch verfügbar auf der rechten Seite des Dialogs, wenn Sie möchten. auf diese Weise svg Bild wird in Ihrem Projekt für die Verwendung dieses Bild das gleiche Verfahren verwendet

@drawable/yourimagename 
+0

Kurze und nützliche Antwort, ohne Kopfschmerzen, wenn Sie externe SVG-Dateien zum Projekt importieren. – CodeToLife

+0

genau das, was ich gesucht habe :) – mohnage7

+0

der 'Next' Button ist immer deaktiviert. irgendeine Idee warum? – mrid

1

das SVG2VectorDrawable Plugin Versuchen Danach importiert. Gehe zu Preferences-> Plugins-> Browse Plugins und installiere SVG2VectorDrawable. Ideal zum Umwandeln von sag-Dateien in Vektor-Zeichen. Sobald Sie installiert haben, finden Sie ein Symbol dafür in der Symbolleiste direkt neben dem Hilfe (?) Symbol.

0

Anstatt Bibliotheken hinzuzufügen, die Ihre apk-Größe erhöhen, empfehle ich Ihnen, Svg zu konvertieren, um mit http://inloop.github.io/svg2android/ zu zeichnen. und vectorDrawables.useSupportLibrary = true in Großbuchstaben hinzufügen,

Verwandte Themen