Ricerca…


introduzione

Come suggerisce il nome, i drawable vettoriali si basano sulla grafica vettoriale. La grafica vettoriale è un modo di descrivere elementi grafici usando forme geometriche. Questo ti consente di creare un drawable basato su un grafico vettoriale XML. Ora non è necessario progettare immagini di dimensioni diverse per mdpi, hdpi, xhdpi e così via. Con Vector Drawable è necessario creare un'immagine una sola volta come file xml e ridimensionarla per tutti i dpi e per diversi dispositivi. Questo inoltre non risparmia spazio ma semplifica anche la manutenzione.

Parametri

Parametro Dettagli
<vector> Utilizzato per definire un vettore disegnabile
<group> Definisce un gruppo di percorsi o sottogruppi, oltre a informazioni sulla trasformazione. Le trasformazioni sono definite nelle stesse coordinate del viewport. E le trasformazioni vengono applicate nell'ordine di scala, ruotano poi traducono.
<path> Definisce i percorsi da tracciare.
<clip-path> Definisce il percorso per essere la clip corrente. Si noti che il percorso della clip si applica solo al gruppo corrente e ai relativi figli.

Osservazioni

Aggiorna il file build.gradle .

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

Se stai usando la versione 2.0 o successiva del plugin Gradle , aggiungi il seguente codice.

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

Se stai usando la versione 1.5 o successiva del plugin Gradle , aggiungi il seguente codice.

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

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

Leggi le note di rilascio della libreria di supporto Android 23.2 per maggiori informazioni.

NOTA: Anche con AppCompat , i vettoriali Drawable non funzioneranno al di fuori della tua app nelle versioni precedenti di Android. Ad esempio, non è possibile passare i vettoriali drawable come icone di notifica man mano che vengono gestiti dal sistema e non dall'app. Vedi questa risposta per una soluzione.

Esempio di utilizzo di VectorDrawable

Ecco un asset vettoriale di esempio che stiamo effettivamente utilizzando in 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>

Usando questo drawable, una dichiarazione ImageView esempio potrebbe essere:

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

Puoi anche impostarlo in fase di esecuzione:

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

Lo stesso attributo e le chiamate funzionano anche per ImageButton .

Esempio di VectorDrawable xml

Ecco un semplice VectorDrawable in questo file 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>

Importazione del file SVG come VectorDrawable

È possibile importare un file SVG come VectorDrawable in Android Studio, attenersi alla seguente procedura:

"Fai clic con il tasto destro del mouse" nella cartella res e seleziona new > Vector Asset .

inserisci la descrizione dell'immagine qui

Seleziona l'opzione File locale e cerca il tuo file .svg. Cambia le opzioni a tuo piacimento e premi avanti. Fatto.

inserisci la descrizione dell'immagine qui



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow