2011-11-17 14 views
33

Ho letto 10 articoli ma non riesco ancora a trovare alcuna relazione tra ldpi, mdpi, hdpi e le dimensioni reali in pixel !? Qualcuno può dare una risposta diretta per favore (se ce n'è una!)Dimensioni dello schermo Android in pixel per ldpi, mdpi, hpdi?

Fondamentalmente sto provando a mettere insieme uno splash screen che deve lavorare su più dispositivi senza stretching - ma sto faticando perché tutto quello che provo è o schiacciato o allungato !?

Evviva Paul

+1

Ho lo stesso dubbio. Sono stato faticato e perquisito molte volte, molti siti web ancora non riesco a ottenere nessuna idea. Si prega di inviare qualcuno per una risposta diretta qui.Grazie @Dancer – Sakthi

risposta

0

Si riferiscono a pixel dello schermo densità, non a video QUOTE. È necessario esaminare gli specificatori della dimensione dello schermo come piccolo, medio, grande e xlarge se invece è davvero necessario modificare il comportamento in base alla dimensione dello schermo in pixel.

The Android docs spiegare quali densità e dimensioni corrispondono a questi identificatori.

0

I dispositivi Android possono avere diversi rapporti larghezza-altezza, mentre l'immagine ne ha uno fisso. Se non vuoi che la tua immagine sia allungata, dovrai riempire gli spazi vuoti sopra e sotto o sinistra e destra.

6

Le definizioni sono: schermi

  • XLarge sono almeno 960dp x 720dp. schermi di grandi dimensioni sono a almeno 640 dpi x 480 dpi. gli schermi normali sono almeno 470dp x 320dp. Gli schermi piccoli sono almeno 426 dpi x 320 dpi. (Android al momento non schermi di supporto più piccolo di questo.)

Inoltre, controllare questo blogpost da Dianne Hackborne: http://android-developers.blogspot.com/2011/07/new-tools-for-managing-screen-sizes.html

Probabilmente la cosa più semplice è quello di utilizzare una visualizzazione delle immagini e impostare lo scaletype a CENTER_CROP. (Ridimensionare l'immagine in modo uniforme (mantenere le proporzioni dell'immagine) in modo che entrambe le dimensioni (larghezza e altezza) dell'immagine siano uguali o superiori alla dimensione corrispondente della vista).

Assicurarsi di utilizzare il tag src anziché impostare lo sfondo.

<ImageView 
    android:id="@+id/home_video_layout" 
    android:src="@drawable/splash_image" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:scaleType="centerCrop" 
    /> 

Aggiornato:

densità dello schermo intesa e l' “dp”

La risoluzione è il numero effettivo di pixel disponibili sul display, la densità è il numero di pixel appaiono all'interno di una zona costante di il display e le dimensioni sono la quantità di spazio fisico disponibile per la visualizzazione dell'interfaccia. Questi sono correlati: aumentano la risoluzione e la densità insieme, e le dimensioni rimangono all'incirca uguali. Questo è il motivo per cui lo schermo 320x480 su uno schermo G1 e 480x800 su un Droid hanno entrambe le stesse dimensioni dello schermo: lo schermo 480x800 ha più pixel, ma è anche più denso.

Per rimuovere i calcoli di dimensioni/densità dall'immagine, il framework Android funziona ovunque possibile in termini di unità "dp", che sono corrette per densità. Nelle schermate a media densità ("mdpi"), che corrispondono ai telefoni Android originali, i pixel fisici sono identici ai dp; le dimensioni dei dispositivi sono 320x480 in entrambe le scale. Un telefono più recente potrebbe avere dimensioni del pixel fisico di 480x800 ma essere un dispositivo ad alta densità. Il fattore di conversione da hdpi a mdpi in questo caso è 1.5, quindi per gli scopi di uno sviluppatore, il dispositivo è 320x533 in dp's.

+1

Cheers per il tuo aiuto lì - ma sono ancora confuso! Non riesco ancora a capire quale dimensione dimensionale effettiva (in pixel non posso usare DP in Photoshop?) Vorrei rendere l'immagine in Photoshop in modo che potesse essere visualizzata al centro dello schermo in ciascuna delle risoluzioni? Cheers Paul – Dancer

+0

Hai letto il blogpost a cui mi sono collegato? Ho appena aggiornato la mia risposta con lo snippet dell'articolo – Damian

+0

di un link a un buon articolo, grazie – Mixaz

73

Ldpi, mdpi e hdpi si riferiscono alla densità dello schermo, che significa quanti pixel possono essere contenuti in un singolo pollice.

il rapporto in pixel tra loro è:

  • ldpi = 1: 0,75
  • mdpi = 1: 1
  • hdpi = 1: 1,5
  • xhdpi = 1: 2
  • xxhdpi = 1: 3
  • xxxhdpi = 1: 4

così lascia prendere un'immagine con le dimensioni di 100X100:

  • per MDPI Va 100X100
  • per ldpi dovrebbe essere 75X75
  • per hdpi Va 150X150
  • per xhdpi esso dovrebbe essere 200X200
  • per xxhdpi dovrebbe essere 300X300
  • per xxxhdpi dovrebbe essere 400X400

in questo modo, per schermi con le stesse dimensioni ma DPI diversi, tutte le immagini sembrano le stesse dimensioni sullo schermo.

Inoltre si dispone di più dimensioni dello schermo: piccolo, normale, grande, xlarge e ognuna di esse può essere ldpi, mdpi, hdpi, xhdpi, xxhdpi (Nexus 10) o xxxhdpi.

Si può provare a creare un'immagine di splash screen adatta a ogni tipo di schermo che offre 4 * 5 = 20 immagini diverse (sembra molto per me).

Per ora solo il Nexus 10 è nella categoria xxhdpi.

+0

Nexus 10 ha uno schermo con una densità di ~ 299 ppi pixel, che ricade su un dispositivo xhpi. Per essere un dispositivo xxhpi, dovrebbe avere ~ 480ppi. Ma ha bisogno comunque di un launcher di icone xxhpi. Quindi, in realtà, Nexus 10 è un dispositivo xhdpi, con un'icona di avvio xxhdpi. Il collegamento – Alesqui

24

Install ImageMagick e utilizzare this shell script per generare i file spruzzata e l'icona per più dispositivi - iOS, Android, Bada e Windows Phone. È possibile utilizzare Cygwin/gitbash se siete su Windows

ho appena fatto e sono abbastanza felice con lui :-)

Le dimensioni dello schermo sono all'interno dello script e sono -

480x800 - screen-hdpi-portrait.png 
320x200 - screen-ldpi-landscape.png 
720x1280 - screen-xhdpi-portrait.png 
320x480 - screen-mdpi-portrait.png 
480x320 - screen-mdpi-landscape.png 
200x320 - screen-ldpi-portrait.png 
800x480 - screen-hdpi-landscape.png 
Problemi correlati