Szukaj…


Wprowadzenie

Jak sama nazwa wskazuje, rysunki wektorowe są oparte na grafice wektorowej. Grafika wektorowa to sposób opisywania elementów graficznych za pomocą kształtów geometrycznych. Umożliwia to tworzenie rysunków opartych na grafice wektorowej XML. Teraz nie ma potrzeby projektowania obrazu o innym rozmiarze dla mdpi, hdpi, xhdpi itp. Dzięki Vector Drawable obraz można utworzyć tylko raz jako plik xml i można go skalować dla wszystkich dpi i dla różnych urządzeń. To również nie oszczędza miejsca, ale także upraszcza konserwację.

Parametry

Parametr Detale
<vector> Służy do definiowania wektora do rysowania
<group> Definiuje grupę ścieżek lub podgrup oraz informacje o transformacji. Transformacje są zdefiniowane w tych samych współrzędnych, co rzutnia. Transformacje są stosowane w kolejności skali, obracania, a następnie tłumaczenia.
<path> Definiuje ścieżki do narysowania.
<clip-path> Definiuje ścieżkę jako bieżący klip. Pamiętaj, że ścieżka klipu dotyczy tylko bieżącej grupy i jej dzieci.

Uwagi

Zaktualizuj plik build.gradle .

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

Jeśli używasz wersji 2.0 lub nowszej wtyczki Gradle , dodaj następujący kod.

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

Jeśli używasz wersji 1.5 lub nowszej wtyczki Gradle , dodaj następujący kod.

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

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

Aby uzyskać więcej informacji, przeczytaj Bibliotekę pomocy technicznej systemu Android 23.2 .

UWAGA: Nawet w AppCompat Vector Drawables nie będzie działać poza aplikacją w starszych wersjach Androida. Na przykład nie można przekazywać rysunków wektorowych jako ikon powiadomień, ponieważ są one obsługiwane przez system, a nie przez aplikację. Zobacz tę odpowiedź w celu obejścia tego problemu.

Przykład użycia VectorDrawable

Oto przykładowy zasób wektorowy, którego faktycznie używamy w AppCompat:

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

Korzystając z tego rysunku, przykładową deklaracją ImageView byłoby:

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

Możesz również ustawić go w czasie wykonywania:

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

Ten sam atrybut i wywołania działają również dla ImageButton .

Przykład xml VectorDrawable

Oto prosty VectorDrawable w tym pliku vectordrawable.xml .

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

Importowanie pliku SVG jako VectorDrawable

Możesz zaimportować plik SVG jako VectorDrawable w Android Studio, wykonaj następujące kroki:

Kliknij prawym przyciskiem myszy folder res i wybierz nowy > Zasób wektorowy .

wprowadź opis zdjęcia tutaj

Wybierz opcję Plik lokalny i przejdź do pliku .svg. Zmień opcje według własnych upodobań i kliknij Dalej. Gotowy.

wprowadź opis zdjęcia tutaj



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow