Aggiungi grafica vettoriale a più densità

Android Studio include uno strumento chiamato Vector Asset Studio che ti permette di aggiungere icone di materiali e importare file Scalable Vector Graphic (SVG) e Adobe Photoshop Document (PSD) nel tuo progetto come risorse di disegno vettoriali. L'utilizzo di tracce di disegno vettoriali invece di bitmap riduce le dimensioni dell'APK perché lo stesso file può essere ridimensionato per diverse densità dello schermo senza perdere la qualità dell'immagine. Per le versioni precedenti di Android che non supportano i disegnabili vettoriali, Vector Asset Studio può, al momento della creazione, trasformarli in dimensioni bitmap diverse per ogni densità dello schermo.

Informazioni su Vector Asset Studio

Vector Asset Studio aggiunge al progetto un'immagine vettoriale sotto forma di file XML che descrive l'immagine. La gestione di un file XML può essere più semplice che aggiornare più immagini raster con varie risoluzioni.

Android 4.4 (livello API 20) e versioni precedenti non supportano i disegni vettoriali. Se il livello API minimo è impostato su uno di questi livelli, quando utilizzi Vector Asset Studio hai due opzioni: generare file PNG (Portable Network Graphic) (valore predefinito) o utilizzare la Support Library.

Per la compatibilità con le versioni precedenti, Vector Asset Studio genera immagini raster del disegno vettoriale. I disegnabili vettoriali e raster vengono pacchettizzati nell'APK. Puoi fare riferimento agli disegnabili vettoriali come Drawable nel codice Java o @drawable nel codice XML; quando la tua app è in esecuzione, l'immagine vettoriale o raster corrispondente viene visualizzata automaticamente a seconda del livello API.

Se vuoi utilizzare solo disegnabili vettoriali, puoi usare Android Support Library 23.2 o versione successiva. Questa tecnica richiede una modifica al file build.gradle prima di eseguire Vector Asset Studio, come descritto in Compatibilità con le versioni precedenti della libreria di supporto. La classe VectorDrawableCompat nella libreria di supporto consente di supportare VectorDrawable in Android 2.1 (livello API 7) e versioni successive.

Tipi di immagini vettoriali supportati

La specifica di Google Material Design fornisce icone Material che puoi utilizzare nelle tue app Android. Vector Asset Studio consente di scegliere, importare e ridimensionare le icone dei materiali, nonché di definire l'opacità e l'impostazione di mirroring da destra a sinistra (RTL).

Vector Asset Studio ti consente anche di importare i tuoi file SVG e PSD. SVG è uno standard aperto basato su XML del World Wide Web Consortium (W3C). Il formato file PSD supporta le funzioni di Adobe Photoshop. Vector Asset Studio supporta gli standard essenziali, ma non tutte le funzionalità SVG e PSD. Quando specifichi un file SVG o PSD, Vector Asset Studio fornisce un feedback immediato per capire se il codice grafico è supportato o meno. Converte il file in un file XML contenente il codice VectorDrawable. Se ricevi errori, devi verificare che il disegno vettoriale venga visualizzato come previsto. Per ulteriori informazioni sulle funzionalità PSD consentite, consulta la sezione Supporto e limitazioni per i file PSD.

Per Android 5.0 (livello API 21) e versioni successive, puoi utilizzare la classe AnimatedVectorDrawable per animare le proprietà della classe VectorDrawable. Con la Support Library, puoi utilizzare la classe AnimatedVectorDrawableCompat per animare la classe VectorDrawable per Android 3.0 (livello API 11) e versioni successive. Per ulteriori informazioni, consulta Animare i disegni di vettori.

Considerazioni sui file SVG e PSD

Un elemento di disegno vettoriale è appropriato per icone semplici. Le icone dei materiali forniscono buoni esempi dei tipi di immagini che funzionano bene come disegnabili vettoriali in un'app. Al contrario, molte icone di avvio dell'app hanno molti dettagli, quindi funzionano meglio come immagini raster.

Il caricamento iniziale di un disegno vettoriale può costare più cicli della CPU rispetto all'immagine raster corrispondente. In seguito, l'utilizzo della memoria e le prestazioni sono simili tra i due. Ti consigliamo di limitare un'immagine vettoriale a un massimo di 200 x 200 dp, altrimenti il disegno potrebbe richiedere troppo tempo.

Sebbene i disegni di disegno vettoriali supportino uno o più colori, in molti casi ha senso colorare le icone in nero (android:fillColor="#FF000000"). Con questo approccio, puoi aggiungere una tinta al disegno vettoriale che hai posizionato in un layout e il colore dell'icona assume il colore della tinta. Se il colore dell'icona non è nero, potrebbe invece fondersi con il colore della tinta.

Soluzioni di compatibilità con le versioni precedenti di vettore

La seguente tabella riassume le due tecniche che puoi utilizzare per la compatibilità con le versioni precedenti:

Tecnica Drawables nell'APK Elementi XML VectorDrawable Versione Flag di build Codice dell'app
Generazione PNG Vettore e raster Sottoinsieme supportato

SVG: plug-in Android per Gradle 1.5.0 o versioni successive

PSD: Android Studio 2.2 o versioni successive

Predefinito Varietà di tecniche di codifica supportate
Libreria di supporto 23.2 o versioni successive Vector Supporto completo Plug-in Android per Gradle 2.0 o versioni successive Istruzioni della libreria di supporto obbligatorie Sottoinsieme di tecniche di codifica supportate

L'utilizzo di elementi disegnabili vettoriali può produrre un APK più piccolo, ma il caricamento iniziale di tali elementi può richiedere più tempo.

Generazione PNG

Android 5.0 (livello API 21) e versioni successive offre supporto di disegno vettoriale. Se la tua app ha un livello API minimo inferiore, Vector Asset Studio aggiunge il file disegnato vettoriale al progetto. Inoltre, al momento della creazione, Gradle crea immagini raster PNG a varie risoluzioni. Gradle genera le densità PNG specificate dalla proprietà generateDensities del linguaggio specifico del dominio (DSL) in un file build.gradle.

Per Android 5.0 (livello API 21) e versioni successive, Vector Asset Studio supporta tutti gli elementi VectorDrawable. Per garantire la compatibilità con le versioni precedenti di Android 4.4 (livello API 20) e versioni precedenti, Vector Asset Studio supporta i seguenti elementi XML:

<vector>

  • android:width
  • android:height
  • android:viewportWidth
  • android:viewportHeight
  • android:alpha

<group>

  • android:rotation
  • android:pivotX
  • android:pivotY
  • android:scaleX
  • android:scaleY
  • android:translateX
  • android:translateY

<path>

  • android:pathData
  • android:fillColor
  • android:strokeColor
  • android:strokeWidth
  • android:strokeAlpha
  • android:fillAlpha
  • android:strokeLineCap
  • android:strokeLineJoin
  • android:strokeMiterLimit

Puoi modificare il codice XML generato da Vector Asset Studio, anche se non si tratta di una best practice. La modifica dei valori nel codice non dovrebbe causare problemi, purché siano validi e statici. Se vuoi aggiungere elementi XML, devi assicurarti che siano supportati in base al livello API minimo.

Libreria di supporto

Questa tecnica richiede Android Support Library 23.2 o versioni successive e un plug-in Android per Gradle 2.0 o versioni successive e utilizza solo disegnabili vettoriali. La classe VectorDrawableCompat nella libreria di supporto ti consente di supportare VectorDrawable in Android 2.1 (livello API 7) e versioni successive.

Prima di utilizzare Vector Asset Studio, devi aggiungere un'istruzione al tuo file build.gradle:

Trendy

android {
    defaultConfig {
        vectorDrawables.useSupportLibrary = true
    }
}

dependencies {
    implementation 'com.android.support:appcompat-v7:23.2.0'
}

Kotlin

android {
    defaultConfig {
        vectorDrawables.useSupportLibrary = true
    }
}

dependencies {
    implementation("com.android.support:appcompat-v7:23.2.0")
}

Devi inoltre utilizzare tecniche di codifica compatibili con la Support Library, come l'utilizzo dell'attributo app:srcCompat anziché dell'attributo android:src per i disegni vettoriali. Per maggiori informazioni, consulta la pagina Android Support Library 23.2.

Esecuzione di Vector Asset Studio

Per avviare Vector Asset Studio:

  1. In Android Studio, apri un progetto di app Android.
  2. Nella finestra Progetto, seleziona la vista Android.
  3. Fai clic con il pulsante destro del mouse sulla cartella res e seleziona Nuovo > Asset vettoriale.
  4. Anche altre visualizzazioni e cartelle del progetto hanno questa voce di menu.

    Viene visualizzato Vector Asset Studio.

    Figura 1. Vector Asset Studio.

  5. Se viene visualizzata la finestra di dialogo È necessario un nuovo plug-in Android per Gradle, correggi la versione di Gradle nel seguente modo:
    1. Seleziona File > Struttura del progetto.
    2. Nella finestra di dialogo Struttura del progetto, seleziona Progetto.
    3. Nel campo Versione plug-in Android, modifica la versione del plug-in Android per Gradle in 1.5.0 o versioni successive e fai clic su OK.
    4. Gradle sincronizza il progetto.

    5. Nella visualizzazione Android della finestra Progetto, fai clic con il tasto destro del mouse sulla cartella res e seleziona Nuovo > Asset vettoriale.
    6. Viene visualizzato Vector Asset Studio.

  6. Continua con Importazione di una grafica vettoriale.

Importazione di un'immagine vettoriale

Vector Asset Studio consente di importare un file di grafica vettoriale nel progetto dell'app. Segui una delle seguenti procedure:

Aggiunta di un'icona del materiale

Dopo aver aperto Vector Asset Studio, puoi aggiungere un'icona del materiale come segue:

  1. In Vector Asset Studio, seleziona Material Icona.
  2. Nel campo Icona, fai clic sul pulsante.
  3. Viene visualizzata la finestra di dialogo Seleziona icona. Puoi filtrare le icone visibili selezionando una categoria di icone dall'elenco a sinistra o digitando nel campo di ricerca come mostrato nella figura 2.

    Figura 2. Filtro delle icone del materiale in Vector Asset Studio.

  4. Seleziona un'icona del materiale e fai clic su OK. L'icona viene visualizzata nell'anteprima di disegno vettoriale.

  5. Se vuoi, modifica il nome, le dimensioni, l'opacità e l'impostazione di mirroring da destra a sinistra (RTL) della risorsa:
    • Nome: digita un nuovo nome se non vuoi utilizzare il nome predefinito. Vector Asset Studio crea automaticamente un nome univoco (aggiunge un numero alla fine del nome) se quel nome risorsa esiste già nel progetto. Il nome può contenere solo caratteri minuscoli, trattini bassi e cifre.
    • Sostituisci: seleziona questa opzione se vuoi regolare le dimensioni dell'immagine. Quando digiti una nuova dimensione, la modifica viene visualizzata nell'area di anteprima.
    • Il valore predefinito è 24 x 24 dp, definito nella specifica di material design. Deseleziona la casella di controllo per tornare all'impostazione predefinita.

    • Opacità: utilizza il dispositivo di scorrimento per regolare l'opacità dell'immagine. La modifica viene visualizzata nell'area di anteprima.
    • Abilita il mirroring automatico per il layout RTL: seleziona questa opzione se vuoi visualizzare un'immagine speculare quando il layout è da destra a sinistra anziché da sinistra a destra. Ad esempio, alcune lingue vengono lette da destra a sinistra; se è presente un'icona a forma di freccia, in questo caso potresti voler visualizzare un'immagine speculare. Tieni presente che se stai lavorando con un progetto precedente, potrebbe anche essere necessario aggiungere android:supportsRtl="true" al file manifest dell'app. Il mirroring automatico è supportato su Android 5.0 (livello API 21) e versioni successive, nonché con Support Library.
  6. Tocca Avanti.
  7. Facoltativamente, modifica il modulo e la directory della risorsa:
    • Directory di risoluzione: seleziona il set di origine della risorsa a cui vuoi aggiungere il disegno vettoriale: src/main/res, src/debug/res, src/release/res o un set di origine definito dall'utente. Il set di origine principale si applica a tutte le varianti della build, inclusi il debug e la release. I set di origini di debug e release sostituiscono il set di origini principale e si applicano a una versione di una build. L'insieme di origini di debug è destinato solo al debug. Per definire un nuovo set di origine, seleziona File > Struttura del progetto > app > Tipi di build. Ad esempio, puoi definire un set di origini beta e creare una versione di un'icona che includa il testo "BETA" nell'angolo in basso a destra. Per maggiori informazioni, consulta Configurare le varianti delle build.

    L'area Directory di output mostra il disegno vettoriale e la directory in cui verrà visualizzato.

  8. Fai clic su Fine.
  9. Vector Asset Studio aggiunge un file XML che definisce il vettore disegnabile al progetto nella cartella app/src/main/res/drawable/. Dalla visualizzazione Android della finestra Progetto, puoi visualizzare il file XML vettoriale generato nella cartella disegnabile.

  10. Creare il progetto.
  11. Se il livello API minimo è Android 4.4 (livello API 20) e versioni precedenti e non hai attivato la tecnica Support Library, Vector Asset Studio genera file PNG. Dalla visualizzazione File di progetto della finestra Progetto, puoi visualizzare i file PNG e XML generati nella cartella app/build/generated/res/pngs/debug/.

    Non modificare questi file raster generati, ma lavorare con il file XML vettoriale. Il sistema di build rigenera automaticamente i file raster quando necessario, così non devi gestirli.

Importazione di un file SVG o PSD

Dopo aver aperto Vector Asset Studio, puoi importare un file SVG o PSD nel seguente modo:

  1. In Vector Asset Studio, seleziona File locale.
  2. Il file deve trovarsi in un'unità locale. Se si trova sulla rete, ad esempio, devi prima scaricarlo su un'unità locale.

  3. Specifica un File immagine facendo clic su ....
  4. L'immagine viene visualizzata nell'anteprima di disegno vettoriale.

    Se il file SVG o PSD contiene funzionalità non supportate, viene visualizzato un errore nella parte inferiore di Vector Asset Studio, come mostrato nella figura 3.

    Figura 3. Vector Asset Studio con alcuni errori.

    Se si verificano errori, devi assicurarti che il disegno vettoriale importato venga visualizzato correttamente. Scorri l'elenco per visualizzare gli errori.

    Per un elenco degli elementi supportati, consulta la pagina Soluzioni di compatibilità con le versioni precedenti di Vector Drawable. Per ulteriori informazioni sui file PSD consentiti, consulta la sezione Supporto e limitazioni per i file PSD.

  5. Facoltativamente, modifica il nome, le dimensioni, l'opacità e l'impostazione di mirroring da destra a sinistra (RTL) della risorsa:
    • Nome: digita un nuovo nome se non vuoi utilizzare il nome predefinito. Vector Asset Studio crea automaticamente un nome univoco (aggiunge un numero alla fine del nome) se quel nome risorsa esiste già nel progetto. Il nome può contenere solo caratteri minuscoli, trattini bassi e cifre.
    • Sostituisci: seleziona questa opzione se vuoi regolare le dimensioni dell'immagine. Dopo averla selezionata, le dimensioni cambiano in base a quelle dell'immagine stessa. Ogni volta che modifichi la dimensione, la modifica viene visualizzata nell'area di anteprima. Il valore predefinito è 24 x 24 dp, definito nella specifica di material design.
    • Opacità: utilizza il dispositivo di scorrimento per regolare l'opacità dell'immagine. La modifica viene visualizzata nell'area di anteprima.
    • Abilita il mirroring automatico per il layout RTL: seleziona questa opzione se vuoi visualizzare un'immagine speculare quando il layout è da destra a sinistra anziché da sinistra a destra. Ad esempio, alcune lingue vengono lette da destra a sinistra; se è presente un'icona a forma di freccia, in questo caso potresti voler visualizzare un'immagine speculare. Tieni presente che se stai lavorando con un progetto precedente, potrebbe essere necessario aggiungere android:supportsRtl="true" al file manifest dell'app. Il mirroring automatico è supportato da Android 5.0 (livello API 21) e versioni successive e dalla Support Library.
  6. Tocca Avanti.
  7. Facoltativamente, modifica la directory della risorsa:
    • Directory di risoluzione: seleziona il set di origine della risorsa in cui vuoi aggiungere il disegno vettoriale: src/main/res, src/debug/res, src/release/res o un set di origine definito dall'utente. Il set di origine principale si applica a tutte le varianti della build, inclusi il debug e la release. I set di origini di debug e release sostituiscono il set di origini principale e si applicano a una versione di una build. L'insieme di origini di debug è destinato solo al debug. Per definire un nuovo set di origine, seleziona File > Struttura del progetto > app > Tipi di build. Ad esempio, puoi definire un set di origini beta e creare una versione di un'icona che includa il testo "BETA" nell'angolo in basso a destra. Per maggiori informazioni, consulta Configurare le varianti delle build.

    L'area Directory di output mostra il disegno vettoriale e la directory in cui verrà visualizzato.

  8. Fai clic su Fine.
  9. Vector Asset Studio aggiunge un file XML che definisce il vettore disegnabile al progetto nella cartella app/src/main/res/drawable/. Dalla visualizzazione Android della finestra Progetto, puoi visualizzare il file XML vettoriale generato nella cartella disegnabile.

  10. Creare il progetto.
  11. Se il livello API minimo è Android 4.4 (livello API 20) e versioni precedenti e non hai attivato la tecnica Support Library, Vector Asset Studio genera file PNG. Dalla visualizzazione File di progetto della finestra Progetto, puoi visualizzare i file PNG e XML generati nella cartella app/build/generated/res/pngs/debug/.

    Non modificare questi file raster generati, ma lavorare con il file XML vettoriale. Il sistema di build rigenera automaticamente i file raster quando necessario, così non devi gestirli.

Aggiunta di una risorsa di disegno vettoriale a un layout

In un file di layout, puoi impostare qualsiasi widget relativo a icone, ad esempio ImageButton, ImageView e così via, in modo che punti a una risorsa disegnabile vettoriale. Ad esempio, il seguente layout mostra una traccia disegnabile vettoriale su un pulsante:

Figura 4. Un elemento disegnabile vettoriale visualizzato su un pulsante in un layout.

Per visualizzare una risorsa di disegno vettoriale su un widget, come mostrato nella figura:

  1. Apri un progetto e importa una risorsa di disegno vettoriale.
  2. Questo esempio utilizza un progetto per telefono/tablet generato con la procedura guidata per nuovo progetto.

  3. Nella visualizzazione Android della finestra Progetto, fai doppio clic su un file XML di layout, ad esempio content_main.xml.
  4. Fai clic sulla scheda Design per visualizzare l'editor di layout.
  5. Trascina il widget ImageButton dalla finestra Palette nell'editor di layout.
  6. Nella finestra di dialogo Risorse, seleziona Drawable nel riquadro a sinistra, quindi seleziona il disegno vettoriale che hai importato. Fai clic su OK.
  7. La risorsa disegnabile vettoriale viene visualizzata nella ImageButton del layout.

  8. Per cambiare il colore dell'immagine con il colore di contrasto definito nel tema, nella finestra Proprietà, individua la proprietà tint e fai clic su ... .
  9. Nella finestra di dialogo Risorse, seleziona Colore nel riquadro a sinistra, quindi seleziona colorAccent. Fai clic su OK.
  10. Il colore dell'immagine diventa il colore di contrasto nel layout.

Se il progetto utilizza la Support Library, il codice ImageButton dovrebbe essere simile al seguente:

<ImageButton
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  app:srcCompat="@drawable/ic_build_black_24dp"
  tools:layout_editor_absoluteX="11dp"
  tools:layout_editor_absoluteY="225dp"
  android:id="@+id/imageButton"
  android:tint="@color/colorAccent" />

Se il progetto non utilizza la Support Library, il codice disegnabile vettoriale sarà android:src="@drawable/ic_build_black_24dp".

Con riferimento a un vettore di disegno disegnato nel codice

Normalmente nel codice puoi fare riferimento a una risorsa disegnabile vettoriale in modo generico e, quando l'app è in esecuzione, l'immagine vettoriale o raster corrispondente viene visualizzata automaticamente a seconda del livello API:

  • Nella maggior parte dei casi, puoi fare riferimento agli elementi di disegno vettoriali come @drawable nel codice XML o Drawable nel codice Java.
  • Ad esempio, il seguente codice XML di layout applica l'immagine a una visualizzazione:

    <ImageView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:src="@drawable/myimage" />
    

    Il seguente codice Java recupera l'immagine come Drawable:

    Kotlin

    val drawable = resources.getDrawable(R.drawable.myimage, theme)

    Java

    Resources res = getResources();
    Drawable drawable = res.getDrawable(R.drawable.myimage, getTheme());
    

    Il metodo getResources() si trova nella classe Context, che si applica agli oggetti UI come attività, frammenti, layout, viste e così via.

  • Se la tua app utilizza la Support Library (anche se non disponi di un'istruzione vectorDrawables.useSupportLibrary = true nel file build.gradle), puoi anche fare riferimento a un disegno vettoriale con un'istruzione app:srcCompat. Ecco alcuni esempi:
  • <ImageView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        app:srcCompat="@drawable/myimage" />
    
  • Di tanto in tanto, potresti dover digitare la risorsa disegnabile nella sua classe esatta, ad esempio quando devi utilizzare funzionalità specifiche della classe VectorDrawable. Per farlo, puoi utilizzare codice Java simile al seguente:
  • Kotlin

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        val vectorDrawable = drawable as VectorDrawable
    } else {
        val bitmapDrawable = drawable as BitmapDrawable
    }
    

    Java

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
       VectorDrawable vectorDrawable = (VectorDrawable) drawable;
    } else {
       BitmapDrawable bitmapDrawable = (BitmapDrawable) drawable;
    }
    

Puoi accedere a risorse di disegno vettoriali solo dal thread principale.

Per la tecnica della Support Library, devi utilizzare tecniche di codifica compatibili con la Support Library. Per maggiori informazioni, consulta la pagina Android Support Library 23.2.

Modificare il codice XML generato da Vector Asset Studio

Puoi modificare il codice XML tracciabile vettoriale, ma non i file PNG e il codice XML corrispondente generato al momento della creazione. Tuttavia, non lo consigliamo.

Quando utilizzi la tecnica di generazione dei file PNG, Vector Asset Studio verifica che il vettore disegnabile e i file PNG corrispondano e che il file manifest contenga il codice corretto. Se aggiungi codice non supportato su Android 4.4 (livello API 20) e versioni precedenti, le immagini vettoriali e PNG potrebbero essere diverse. Devi inoltre assicurarti che il manifest contenga il codice per supportare le modifiche.

Per modificare il file XML vettoriale quando non utilizzi la tecnica della Support Library:

  1. Nella finestra Progetto, fai doppio clic sul file XML vettoriale generato nella cartella drawable.
  2. Il file XML viene visualizzato nella finestra dell'editor e di Anteprima.

    Figura 5. Un file XML vettoriale visualizzato nell'editor di codice e nella finestra di anteprima.

  3. Modifica il codice XML in base a quanto supportato dal livello API minimo:
  4. Crea il progetto e verifica che le immagini vettoriali tracciabili e le immagini raster corrispondenti abbiano lo stesso aspetto.
  5. Ricorda che i file PNG generati potrebbero essere visualizzati in modo diverso nella finestra Anteprima rispetto all'app a causa dei diversi motori di rendering e di eventuali modifiche apportate al disegno vettoriale prima di una build. Se aggiungi codice al file XML vettoriale creato da Vector Asset Studio, le funzionalità non supportate in Android 4.4 (livello API 20) e versioni precedenti non vengono visualizzate nei file PNG generati. Di conseguenza, quando aggiungi il codice, devi sempre controllare che i file PNG generati corrispondano al disegno vettoriale. Per farlo, fai doppio clic sul file PNG nella visualizzazione File di progetto della finestra Progetto. Il margine sinistro dell'editor di codice mostra anche l'immagine PNG quando il codice fa riferimento all'elemento disegnabile, come mostrato nella figura 6.

    Figura 6. Un'immagine PNG visualizzata nel margine sinistro dell'Editor di codice.

Eliminazione di un vettore tracciabile da un progetto

Per rimuovere un vettore tracciabile da un progetto:

  1. Nella finestra Progetto, elimina il file XML vettoriale generato selezionandolo e premendo il tasto Elimina (oppure seleziona Modifica > Elimina).
  2. Viene visualizzata la finestra di dialogo Eliminazione sicura.

  3. Facoltativamente, seleziona le opzioni per trovare la posizione in cui viene utilizzato il file nel progetto e fai clic su OK.
  4. Android Studio elimina il file dal progetto e dal Drive. Tuttavia, se hai scelto di cercare posizioni nel progetto in cui viene utilizzato il file e sono stati trovati alcuni utilizzi, puoi visualizzarli e decidere se eliminare il file.

  5. Seleziona Crea > Rimuovi progetto.
  6. Tutti i file PNG e XML generati automaticamente corrispondenti al disegno vettoriale eliminato vengono rimossi dal progetto e dal Drive.

Caricamento di un'app contenente elementi di disegno vettoriali

Se hai utilizzato la tecnica Support Library o se il tuo livello API minimo è Android 5.0 (livello API 21) o versioni successive, il tuo APK conterrà i disegnabili vettoriali che hai aggiunto con Vector Asset Studio. Questi APK saranno più piccoli rispetto a quanto accadrebbe se le immagini vettoriali venissero convertite in formato PNG.

Se il livello API minimo include Android 4.4 (livello API 20) o versioni precedenti e se nel tuo progetto sono presenti disegnabili vettoriali e immagini raster corrispondenti, hai due opzioni per caricare i file APK:

  • Crea un APK che includa sia i disegnabili vettoriali sia le corrispondenti rappresentazioni raster. Questa soluzione è la più semplice da implementare.
  • Crea APK separati per i diversi livelli API. Se non includi le immagini raster corrispondenti nell'APK per Android 5.0 (livello API 21) e versioni successive, le dimensioni dell'APK potrebbero essere notevolmente inferiori. Per maggiori informazioni, consulta la pagina Supporto di più APK.

Supporto e limitazioni per i file PSD

Vector Asset Studio non supporta tutte le funzionalità dei file PSD. Il seguente elenco riassume le caratteristiche dei PSD supportate e non supportate, nonché alcuni dettagli sulle conversioni.

Documento

Supportata:

  • Una modalità colore PSD di bitmap, scala di grigi, indicizzata, RGB, Lab o CMYK.
  • Una profondità di colore di 8, 16 o 32 bit.

Dettagli conversione:

  • Le dimensioni dei documenti PSD diventano dimensioni dell'area visibile e disegnabili vettoriali.

Funzionalità non supportate:

  • Una modalità colore PSD a due tonalità o multicanale.

Forme

Supportata:

  • Maschere di ritaglio, se la base di ritaglio ha un'altra forma.
  • Operazioni sulle forme, tra cui unione/aggiunta, intersezione, sottrazione ed esclusione.

Funzionalità non supportate:

  • Regola di riempimento dispari utilizzata dalle forme di Photoshop. In Android 6.0 (livello API 23) e versioni precedenti, i disegnabili vettoriali supportano solo la regola di riempimento diversa da zero. Nelle forme che si intersecano, questa limitazione può portare a differenze di rendering tra il PSD e il vettore risultante disegnabile. Per risolvere il problema, aggiungi android:fillType="evenOdd" alla forma nel disegno vettoriale. Ad esempio:
    <vector xmlns:android="https://schemas.android.com/apk/res/android"
        android:viewportHeight="168"
        android:height="24dp"
        android:viewportWidth="209"
        android:width="24dp">
    
        <path
            android:fillAlpha="1.0"
            android:fillColor="#000000"
            android:fillType="evenOdd"
            android:pathData="M24,58 L24,167 L114,167 L114,66 M64,1 L64,96 L208,96 L208,8 M1,97 L146,139 L172,47"/>
    </vector>
    

Colpi e riempimenti

Supportata:

  • Tratti, inclusi colore, opacità, larghezza, unione, maiuscole, trattini e allineamento.
  • Tratti e riempimenti a tinta unita.
  • Colori di tratto e riempimento specificati come RGB, Lab o CMYK.

Dettagli conversione:

  • Se un tratto viene tratteggiato, ritagliato con una base di taglio o utilizza un allineamento diverso dal centro, Vector Asset Studio lo converte in una forma di riempimento nell'elemento disegnabile vettoriale.

Funzionalità non supportate:

  • Riempimenti e tratti cromatici che non sono a tinta unita, ad esempio i gradienti.

Opacità

Supportata:

  • Livelli delle forme con opacità pari a 0.

Dettagli conversione:

  • Vector Asset Studio moltiplica l'opacità del riempimento con l'opacità del livello per calcolare l'alfa del riempimento.
  • Lo strumento moltiplica l'opacità della base di ritaglio (se esiste una base di ritaglio) con l'alfa di riempimento per calcolare l'alfa del riempimento finale.
  • Lo strumento moltiplica l'opacità del tratto per l'opacità del livello per calcolare l'alfa del tratto.
  • Lo strumento moltiplica l'opacità della base di ritaglio (se esiste una base di ritaglio) con il tratto alfa per calcolare il tratto alfa finale.

Livelli

Supportata:

  • Qualsiasi livello di forma visibile.

Dettagli conversione:

  • Vector Asset Studio conserva il nome dei livelli nel file di disegno vettoriale.

Funzionalità non supportate:

  • Effetti dei livelli.
  • Livelli di regolazione e di testo.
  • Modalità di combinazione (ignorate).

Supporto e limitazioni per i file SVG

Vector Asset Studio non supporta tutte le funzionalità dei file SVG. La seguente sezione riassume le funzionalità supportate e non supportate quando lo strumento converte un file SVG in un file VectorDrawable, insieme a ulteriori dettagli sulla conversione.

Funzionalità supportate

VectorDrawable supporta tutte le funzionalità di Tiny SVG 1.2, ad eccezione di testo.

Forme

VectorDrawable supporta i percorsi SVG.

Lo strumento converte le forme primitive, come cerchi, quadrati e poligoni, in percorsi.

Trasformazioni

Lo strumento supporta le matrici di trasformazione e le applica direttamente ai percorsi figlio.

Gruppi

Lo strumento supporta elementi di gruppo per la traslazione, il ridimensionamento e la rotazione. I gruppi non supportano una proprietà di opacità.

Lo strumento applica inoltre qualsiasi stile o opacità del gruppo ai percorsi figlio.

Riempimenti e tratti

I percorsi possono essere riempiti e tratteggiati utilizzando colori a tinta unita o gradienti (lineari, radiali o angolari). Sono supportati solo tratti centrati. I metodi di fusione non sono supportati. I percorsi tratteggiati non sono supportati.

Maschere

Lo strumento supporta una maschera di ritaglio per gruppo.

Funzionalità non supportate dall'importatore SVG

Le funzionalità non elencate nella sezione Funzionalità supportate in alto non sono supportate. Alcune importanti funzionalità non supportate includono:

  • Effetti filtro: gli effetti come ombre, sfocature e matrice dei colori non sono supportati.
  • Testo: è consigliabile convertire il testo in forme utilizzando altri strumenti.
  • Riempimento con pattern