Le immagini e altri file visivi sono memorizzati in una o più directory disegnabili. Se solo in una directory, Android ridimensiona l'immagine secondo necessità. Se viene utilizzata più di una directory, Android selezionerà l'immagine di dimensioni appropriate.
- drawable-ldpi - immagini a bassa densità
- drawable-MDPI - le immagini medie densità
- drawable-hdpi - Immagini ad alta densità
- drawable-xhdpi - immagini ad alta densità extra (display cioè retina-like)
- drawable-xxhdpi - immagini ad alta densità extra extra (dispositivi come Nexus 10, Samsung Galaxy S4, HTC One e Sony Xperia Z)
- drawable-xxxhdpi - immagini ad alta densità in più triple (Nexus 6 and 9)
(Nota a margine: i file XML possono anche essere scritti e memorizzati come disegni. Questi tipi di file possono controllare quando più immagini devono essere utilizzate in base allo stato di una vista o ad altre impostazioni visive come gradienti, bordi, ecc.
Quindi, che cosa deve fare ?
Per ottenere i migliori risultati (dal Android developer docs):
per generare queste immagini, si dovrebbe iniziare con la vostra risorsa grezza in formato vettoriale e generare le immagini per ogni densità utilizzando la seguente scala dimensioni:
- xxxhdpi: 4.0
- xxhdpi: 3.0
- xhdpi: 2.0
- hd pi: 1.5
- tvdpi: 1.33 (solo TV)
- MDPI: 1.0 (baseline)
- ldpi: 0,75
Questo significa che se si genera un'immagine di 200x200 per i dispositivi xhdpi, si dovrebbe generare la stessa risorsa in 150x150 per hdpi, 133x133 per tvdpi, 100x100 per mdpi e infine un'immagine 75x75 per dispositivi LDPI.
Se si desidera utilizzare una sola immagine e lasciare scala Android per voi:
Oltre il 75% dei dispositivi Android ora hanno risoluzioni hdpi o superiore, a seconda del Dashboard on the Android Developer site. Quindi, se crei un'immagine su hdpi, ad esempio, sarà perfetta per circa un terzo dei dispositivi, aumenterà la scalabilità per alcuni e ridurla per circa il 25% dei dispositivi. In generale, penso che sarebbe meglio ridimensionare piuttosto che aumentare di livello.
fonte
2013-02-25 01:52:07
grazie mille. bella risposta :) –
Grazie! Ho recentemente studiato questo problema. –
Ho 20 immagini. Ciascuno di essi è 100x100px. Immagino che significhi che devo creare 60 immagini in più, una per le altre 3 densità. Potete consigliare un programma per semplificare questo compito? Io uso paint.net ma non esegue l'elaborazione in batch. –