Zoeken…


Invoering

Zoals de naam al aangeeft, zijn vector tekentafels gebaseerd op vectorafbeeldingen. Vectorafbeeldingen zijn een manier om grafische elementen te beschrijven met behulp van geometrische vormen. Hiermee kunt u een tekentabel maken op basis van een XML-vectorafbeelding. Nu is het niet nodig om een afbeelding van verschillende grootte te ontwerpen voor mdpi, hdpi, xhdpi en enz. Met Vector Drawable hoeft u de afbeelding slechts eenmaal te maken als een xml-bestand en kunt u deze schalen voor alle dpi en voor verschillende apparaten. Dit bespaart ook geen ruimte maar vereenvoudigt ook het onderhoud.

parameters

Parameter Details
<vector> Wordt gebruikt om een vector-tekenruimte te definiëren
<group> Definieert een groep paden of subgroepen, plus transformatie-informatie. De transformaties worden gedefinieerd in dezelfde coördinaten als de viewport. En de transformaties worden toegepast in de volgorde van schaal, roteren en vervolgens vertalen.
<path> Definieert de te tekenen paden.
<clip-path> Definieert pad als de huidige clip. Merk op dat het clippad alleen van toepassing is op de huidige groep en de onderliggende groepen.

Opmerkingen

Update build.gradle- bestand.

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

Als u v2.0 of hoger van de Gradle-plug-in gebruikt , voegt u de volgende code toe.

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

Als u v1.5 of lager van de Gradle-plug-in gebruikt , voeg dan de volgende code toe.

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

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

Lees Android Support Library 23.2 Release-opmerkingen voor meer info.

OPMERKING: Zelfs met AppCompat werken Vector Drawables niet buiten uw app in oudere Android-versies. U kunt bijvoorbeeld vectortekenreeksen niet doorgeven als meldingspictogrammen, aangezien deze door het systeem en niet door de app worden verwerkt. Zie dit antwoord voor een oplossing.

Voorbeeld van vectordrawable-gebruik

Hier is een voorbeeld van een vectoractief dat we eigenlijk gebruiken in AppCompat:

res / betekenbare / 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>

Met behulp van dit teken kan een voorbeeld van een ImageView aangifte zijn:

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

U kunt het ook instellen tijdens runtime:

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

Hetzelfde kenmerk en aanroepen werken ook voor ImageButton .

VectorDrawable xml-voorbeeld

Hier is een eenvoudige VectorDrawable in dit vectordrawable.xml- bestand.

 <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>

SVG-bestand importeren als VectorDrawable

U kunt een SVG- bestand importeren als VectorDrawable in Android Studio, volg deze stappen:

Klik met de rechtermuisknop op de map res en selecteer Nieuw > Vector-activum .

voer hier de afbeeldingsbeschrijving in

Selecteer de optie Lokaal bestand en blader naar uw .svg-bestand. Wijzig de opties naar wens en klik op Volgende. Gedaan.

voer hier de afbeeldingsbeschrijving in



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow