Aggiungi risorse dell'app

Le risorse delle app, ad esempio bitmap e layout, sono organizzate in base al tipo all'interno della directory res/ di ogni modulo. Puoi anche aggiungere alternative di ogni file ottimizzate per dispositivi diversi configurazioni, ad esempio una versione ad alta risoluzione di una bitmap per schermate.

Android Studio ti aiuta ad aggiungere nuove risorse e risorse alternative in diversi a seconda del tipo di risorsa che vuoi aggiungere. In questa pagina viene descritto come aggiungere file di risorse di base, cambiare la località delle risorse e come funziona l'unione delle risorse.

Consulta le pagine seguenti per i dettagli su come creare tipi di risorse specifici:

Per informazioni su come fare riferimento alle risorse della tua app di codice, consulta Panoramica delle risorse per app.

Aggiungi un file di risorse XML

Sebbene i link alle pagine precedenti descrivano flussi di lavoro personalizzati di risorse, puoi aggiungere qualsiasi file di risorse XML seguendo questi passaggi:

  1. Fai clic sul modulo dell'app di destinazione nella finestra Progetto in la vista Android o Progetto.

  2. Seleziona File > Nuovo > File di risorse Android.

    Figura 1. Finestra di dialogo Nuovo file di risorse.

  3. Inserisci i dettagli nella finestra di dialogo:
    • Nome file: inserisci il nome per il file XML (non è necessario il valore .xml).
    • Tipo di risorsa: seleziona il tipo di risorsa che vuoi creare.
    • Elemento principale: se applicabile, seleziona l'elemento XML principale per il parametro . Alcuni tipi di risorse supportano un solo tipo di elemento principale. A seconda sul tipo di risorsa selezionato, questa impostazione potrebbe non essere modificabile.
    • Set di origine: seleziona il set di origine in cui vuoi salvare il file.
    • Nome directory: il nome della directory deve essere specifico al tipo di risorsa e ai qualificatori di configurazione. Non modificare questo elemento a meno che aggiungere qualificatori di configurazione manualmente il nome della directory (utilizza invece Qualificatori disponibili).
    • Qualificatori disponibili: anziché includere manualmente i qualificatori di configurazione. nel nome della directory, puoi aggiungerli selezionando un qualificatore dal dall'elenco e facendo clic su Aggiungi .
  4. Dopo aver aggiunto tutti i qualificatori, fai clic su OK.

Suggerimento: per aprire una versione semplificata della finestra di dialogo Nuovo file di risorsa specifico per il tipo di risorsa che vuoi aggiungere, fai clic con il tasto destro del mouse su risorsa all'interno della cartella res e seleziona Nuovo > type-name file di risorse.

Risorse XML complesse incorporate

Alcune risorse complesse richiedono più file di risorse XML. Ad esempio, un drawable vettoriale animato ha un oggetto disegnabile vettoriale e un oggetto di animazione e richiede almeno tre file XML.

In questo esempio, puoi creare e conservare i tre file XML separati se devi riutilizzare uno o più che li rappresentano. Ma se i file XML vengono usati solo per questo drawable vettoriale animato, puoi usare il formato di risorse in linea fornito nella sezione Strumento di imballaggio (AAPT). Con AAPT, puoi definire tutte e tre le risorse in un unico XML . Per ulteriori informazioni, consulta la sezione XML complesso in linea Google Cloud.

Aggiungi una directory di risorse

Per aggiungere una nuova directory di risorse:

  1. Fai clic sul modulo dell'app di destinazione nella finestra Progetto.

  2. Seleziona File > Nuovo > Directory delle risorse Android.

    Figura 2. Finestra di dialogo Nuova directory delle risorse.

  3. Inserisci i dettagli nella finestra di dialogo:
    • Nome directory: il nome della directory deve essere specifico al tipo di risorsa e alla combinazione di qualificatori di configurazione. Azioni sconsigliate modificare questo campo, a meno che tu non voglia aggiungere qualificatori di configurazione manualmente il nome della directory (utilizza invece Qualificatori disponibili).
    • Tipo di risorsa:seleziona il tipo di risorsa che deve essere contenuta nella directory.
    • Set di origine:seleziona il set di origini in cui vuoi inserire la directory.
    • Qualificatori disponibili: anziché includere manualmente i qualificatori di configurazione nel nome della directory, puoi aggiungerli selezionando un qualificatore dal dall'elenco e facendo clic su Aggiungi .
  4. Dopo aver aggiunto tutti i qualificatori, fai clic su OK.

Cambia la directory delle risorse

Per impostazione predefinita, le risorse si trovano in module-name/src/source-set-name/res/. Ad esempio, le risorse per il set di origini principale del modulo si trovano in src/main/res/, e le risorse per il set di origini di debug si trovano in src/debug/res/.

Tuttavia, puoi modificare questi percorsi località (relativa al file build.gradle) con la proprietà res.srcDirs nel blocco sourceSets. Ad esempio:

Alla moda

android {
    sourceSets {
        main {
            res.srcDirs = ['resources/main']
        }
        debug {
            res.srcDirs = ['resources/debug']
        }
    }
}

Kotlin

android {
    sourceSets {
        getByName("main") {
            res.srcDirs("resources/main")
        }
        getByName("debug") {
            res.srcDirs("resources/debug")
        }
    }
}

Puoi anche specificare più directory delle risorse per un set di origini, quindi gli strumenti di creazione li uniscono. Ad esempio:

Alla moda

android {
    sourceSets {
        main {
            res.srcDirs = ['res1', 'res2']
        }
    }
}

Kotlin

android {
    sourceSets {
        main {
            res.srcDirs("res1", "res2")
        }
    }
}

Per ulteriori informazioni, leggi le informazioni set di origine.

Unione delle risorse

Le risorse nel file finale dell'app possono provenire da tre origini:

Quando tutte le risorse di ogni set di origine o libreria sono univoche, saranno tutte aggiunte all'app finale. Una risorsa è considerata univoca se il suo nome file è univoci all'interno dei due Directory resource type e ai qualificatore delle risorse (se definita).

Se esistono due o più versioni corrispondenti della stessa risorsa, solo una versione sarà inclusa nell'app finale. Gli strumenti di creazione selezionano quale versione mantenere in base al seguente ordine di priorità (priorità massima a sinistra):

variante di build > tipo di build > versione del prodotto > set di sorgenti principali > delle dipendenze di libreria
.

Ad esempio, se il set di origini principali contiene:

  • res/layout/example.xml
  • res/layout-land/example.xml

Il tipo di build di debug contiene:

  • res/layout/example.xml

Quindi l'app finale include res/layout/example.xml del tipo di build di debug e res/layout-land/example.xml dal set di origini principali.

Tuttavia, se la configurazione della build specifica più cartelle di risorse un determinato set di origini e si verificano conflitti tra tali origini, viene generato un errore e l'unione non riesce perché ogni directory delle risorse ha lo stesso la priorità.