Domanda

Ho confusione per quanto riguarda i multi schermi supportano in Android. Ho passato con articolo per il supporto multi schermo al Forum degli sviluppatori Android. La mia domanda è se applicazione dispone di 15-20 immagini che hanno bisogno di essere mostrato a schermo intero sul display del telefono cellulare. Ora, se voglio sostenere tutti gli schermi che cosa devo inserire nelle tre cartelle disegnabili ldpi, MDPI & hdpi. Ecco quello che ho fatto

In ldpi - immagini di 240x320 risoluzione MDPI - immagini di 320x480 reolution hdpi - immagini di 720x800 risoluzione. (Sto usando stesse densità per tutti e tre di risoluzione) Credo che questo non è l'approccio giusto.

Che cosa devo fare? immagini poste di risoluzione differente in drawable-ldpi, drawable-mdpi & drawable-hdpi come sopra o devo usare immagini di diversa densità 120 dpi, 160 dpi e 240 dpi. Se io uso le immagini di diverse densità quello che dovrebbe essere la loro risoluzione (dovrebbe risoluzione 120 dpi essere 240x320, risoluzione dpi risoluzione 160 dpi 320x480 & 240 sia 480x800). O se sto usando diverse immagini dpi loro risoluzione dovrebbe essere lo stesso (320x480) per tutte le densità.

Saluti, Anuj

È stato utile?

Soluzione

Idealmente si dovrebbe avere drawable con diverse densità di schermi differenti. È possibile utilizzare i formati che hai citato per le vostre immagini. Ma si può anche fornire solo immagini ad alta dpi e saranno ridimensionato alla densità schermo del dispositivo partita dell'utente.

Inoltre, se si desidera che le immagini da mostrare a schermo intero, è forse avere diverse versioni di queste immagini per paesaggio e ritratto orientamenti e per lunghi e non schermi lunghi.

E infine è possibile utilizzare un widget di ImageView per la corretta scalatura delle immagini su dispositivi diversi.

Altri suggerimenti

Anujprashar, non c'è una risposta facile alla tua domanda. Le diverse specifiche densità (hdpi, mdpi, ldpi) appena riferiscono a una gamma media densità (cioè hdpi è di circa 240 ppi). Tuttavia, hdpi potrebbe fare riferimento a un gran numero di differenti risoluzioni (ad esempio Motorola Droid è hdpi, risoluzione 480x854; Nexus One è hdpi, risoluzione 480x800). Quindi non v'è un'immagine di formato non fisso è possibile utilizzare per adattarsi perfettamente tutti i dispositivi a schermo intero.

Il mio suggerimento è, se possibile, evitare di utilizzare una disposizione che richiede le immagini sia l'esatta dimensione dello schermo, o invece fornire un'immagine più grande della maggior parte delle risoluzioni per quella densità destinazione (ad esempio 500x900) lasciando margini aggiuntivi che possono essere ritagliate off (pensare ad esso come un sanguinamento, se si ha familiarità con questo concetto per la stampa).

O più semplicemente, se non si richiede loro di essere visualizzato 1: 1 a loro pixel di risoluzione originale, si può semplicemente impostare lo scaleType di un ImageView a centerCrop, e la sua larghezza e l'altezza a fill_parent. Questo espanderà (o condensa) dell'immagine per adattarsi al contenitore, ritagliando pixel se la proporzione non è corretta.

Il metodo più difficile (e molto meno efficiente) sarebbe quella di avere un'immagine diversa per ogni risoluzione dello schermo, ed un metodo nella onCreate () per recuperare le dimensioni dello schermo e impostare l'immagine in base ai valori che si ottiene indietro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top