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:
- In Android Studio, apri un progetto di app Android.
- Nella finestra Progetto, seleziona la vista Android.
- Fai clic con il pulsante destro del mouse sulla cartella res e seleziona Nuovo > Asset vettoriale.
- Se viene visualizzata la finestra di dialogo È necessario un nuovo plug-in Android per Gradle, correggi la versione di Gradle nel seguente modo:
- Seleziona File > Struttura del progetto.
- Nella finestra di dialogo Struttura del progetto, seleziona Progetto.
- 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.
- Nella visualizzazione Android della finestra Progetto, fai clic con il tasto destro del mouse sulla cartella res e seleziona Nuovo > Asset vettoriale.
- Continua con Importazione di una grafica vettoriale.
Anche altre visualizzazioni e cartelle del progetto hanno questa voce di menu.
Viene visualizzato Vector Asset Studio.
Gradle sincronizza il progetto.
Viene visualizzato Vector Asset Studio.
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:
- In Vector Asset Studio, seleziona Material Icona.
- Nel campo Icona, fai clic sul pulsante.
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.
- 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.
- 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.
Il valore predefinito è 24 x 24 dp, definito nella specifica di material design. Deseleziona la casella di controllo per tornare all'impostazione predefinita.
- Tocca Avanti.
- 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. - Fai clic su Fine.
- Creare il progetto.
Seleziona un'icona del materiale e fai clic su OK. L'icona viene visualizzata nell'anteprima di disegno vettoriale.
L'area Directory di output mostra il disegno vettoriale e la directory in cui verrà visualizzato.
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.
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:
- In Vector Asset Studio, seleziona File locale.
- Specifica un File immagine facendo clic su ....
- 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. - Tocca Avanti.
- 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. - Fai clic su Fine.
- Creare il progetto.
Il file deve trovarsi in un'unità locale. Se si trova sulla rete, ad esempio, devi prima scaricarlo su un'unità locale.
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.
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.
L'area Directory di output mostra il disegno vettoriale e la directory in cui verrà visualizzato.
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.
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:
Per visualizzare una risorsa di disegno vettoriale su un widget, come mostrato nella figura:
- Apri un progetto e importa una risorsa di disegno vettoriale.
- Nella visualizzazione Android della finestra Progetto, fai doppio clic su un file XML di layout, ad esempio
content_main.xml
. - Fai clic sulla scheda Design per visualizzare l'editor di layout.
- Trascina il widget
ImageButton
dalla finestra Palette nell'editor di layout. - Nella finestra di dialogo Risorse, seleziona Drawable nel riquadro a sinistra, quindi seleziona il disegno vettoriale che hai importato. Fai clic su OK.
- 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 ... .
- Nella finestra di dialogo Risorse, seleziona Colore nel riquadro a sinistra, quindi seleziona colorAccent. Fai clic su OK.
Questo esempio utilizza un progetto per telefono/tablet generato con la procedura guidata per nuovo progetto.
La risorsa disegnabile vettoriale viene visualizzata nella ImageButton
del layout.
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 oDrawable
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.
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" />
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:
- Nella finestra Progetto, fai doppio clic sul file XML vettoriale generato nella cartella drawable.
- Modifica il codice XML in base a quanto supportato dal livello API minimo:
- Android 5.0 (livello API 21) e versioni successive. Vector Asset Studio supporta tutti gli elementi
Drawable
eVectorDrawable
. Puoi aggiungere elementi XML e modificare i valori. - Android 4.4 (livello API 20) e versioni precedenti. Vector Asset Studio supporta tutti gli elementi
Drawable
e un sottoinsieme di elementiVectorDrawable
. Per un elenco, consulta Soluzioni di compatibilità con le versioni precedenti di Vector Drawable. Puoi modificare i valori nel codice generato e aggiungere gli elementi XML supportati. - Crea il progetto e verifica che le immagini vettoriali tracciabili e le immagini raster corrispondenti abbiano lo stesso aspetto.
Il file XML viene visualizzato nella finestra dell'editor e di Anteprima.
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.
Eliminazione di un vettore tracciabile da un progetto
Per rimuovere un vettore tracciabile da un progetto:
- Nella finestra Progetto, elimina il file XML vettoriale generato selezionandolo e premendo il tasto Elimina (oppure seleziona Modifica > Elimina).
- Facoltativamente, seleziona le opzioni per trovare la posizione in cui viene utilizzato il file nel progetto e fai clic su OK.
- Seleziona Crea > Rimuovi progetto.
Viene visualizzata la finestra di dialogo Eliminazione sicura.
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.
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