Sök…


Introduktion

Som namnet antyder är vektorteckningar baserade på vektorgrafik. Vektorgrafik är ett sätt att beskriva grafiska element med hjälp av geometriska former. Detta gör att du kan skapa en dragbar baserad på en XML-vektorgrafik. Nu finns det inget behov av att designa bild av olika storlek för mdpi, hdpi, xhdpi och etc. Med Vector Drawable behöver du skapa en bild en gång som en xml-fil och du kan skala den för alla dpi och för olika enheter. Detta sparar inte heller utrymme utan förenklar också underhållet.

parametrar

Parameter detaljer
<vector> Används för att definiera en dragbar vektor
<group> Definierar en grupp sökvägar eller undergrupper plus information om transformation. Transformationerna definieras i samma koordinater som visningsområdet. Och transformationerna tillämpas i storleksordning, rotera och översätt sedan.
<path> Definierar banor som ska dras.
<clip-path> Definierar sökvägen som ska vara det aktuella klippet. Observera att klippvägen endast gäller den aktuella gruppen och dess barn.

Anmärkningar

Uppdatera build.gradle- filen.

dependencies {
    ...
   compile 'com.android.support:appcompat-v7:23.2.1'
}

Om du använder v2.0 eller högre för Gradle-plugin , lägg till följande kod.

// Gradle Plugin 2.0+  
 android {  
   defaultConfig {  
     vectorDrawables.useSupportLibrary = true  
    }  
 }

Om du använder v1.5 eller nedan för Gradle-plugin , lägg till följande kod.

// Gradle Plugin 1.5  
 android {  
   defaultConfig {  
     generatedDensities = []  
  }  

  // This is handled for you by the 2.0+ Gradle Plugin  
  aaptOptions {  
    additionalParameters "--no-version-vectors"  
  }  
 }

Läs Android Support Library 23.2 Release Notes för mer information.

OBS ! Även med AppCompat fungerar vektorteckningar utanför din app i äldre Android-versioner. Du kan till exempel inte skicka vektorteckningar som meddelandesymboler eftersom de hanteras av systemet och inte appen. Se detta svar för en lösning.

Exempel på användning av VectorDrawable

Här är en exempelvektor som vi faktiskt använder i AppCompat:

res / dragbart / ic_search.xml

<vector xmlns:android="..."
        android:width="24dp"
        android:height="24dp"
        android:viewportWidth="24.0"
        android:viewportHeight="24.0"
        android:tint="?attr/colorControlNormal">

    <path
        android:pathData="..."
        android:fillColor="@android:color/white"/>

</vector>

Med hjälp av denna dragbara skulle ett exempel på ImageView deklaration vara:

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:srcCompat="@drawable/ic_search"/>

Du kan också ställa in det vid körning:

ImageView iv = (ImageView) findViewById(...);
iv.setImageResource(R.drawable.ic_search);

Samma attribut och samtal fungerar också för ImageButton .

VectorDrawable xml-exempel

Här är en enkel VectorDrawable i den här vectordrawable.xml- filen.

 <vector xmlns:android="http://schemas.android.com/apk/res/android"
     android:height="64dp"
     android:width="64dp"
     android:viewportHeight="600"
     android:viewportWidth="600" >
     <group
         android:name="rotationGroup"
         android:pivotX="300.0"
         android:pivotY="300.0"
         android:rotation="45.0" >
         <path
             android:name="v"
             android:fillColor="#000000"
             android:pathData="M300,70 l 0,-70 70,70 0,0 -70,70z" />
     </group>
 </vector>

Importerar SVG-fil som VectorDrawable

Du kan importera en SVG- fil som en VectorDrawable i Android Studio, följ dessa steg:

"Högerklicka" i res mappen och välj ny > Vector tillgång .

ange bildbeskrivning här

Välj alternativet Lokal fil och bläddra till din .svg-fil. Ändra alternativen till din smak och tryck på Nästa. Gjort.

ange bildbeskrivning här



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow