Autore Topic: difference-of-px-dp-dip-and-sp-in-android  (Letto 2477 volte)

Offline alepio

  • Utente normale
  • ***
  • Post: 163
    • Google+
    • 107850838
    • Mostra profilo
  • Dispositivo Android:
    SAMSUNG ACE
  • Play Store ID:
    Alessandro Piola
  • Sistema operativo:
    WIN 7
difference-of-px-dp-dip-and-sp-in-android
« il: 11 Agosto 2010, 23:29:29 CEST »
Chi mi riesce a spiegare le relative differenze.
E soprattutto come posso risolvere i problemi dei miltischermi?

Grazie
Alessandro
-----------------------------------------------------
Con RISPARMIO BATTERIA - Battery Saver puoi anche dimenticarti a casa il carica batteria. Inoltre con gli EXTRAS puoi configurare la navigazione e disattivare i banner pubblicitari. Battery Saver controlla in automatico lo stato dello schermo.Se è spento disattiva WIFI e NAVIGAZIONE MOBILE, per poi riaccenderle a schermo attivo.
[APP] BatterySaver - Android Developers Italia
--------

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:difference-of-px-dp-dip-and-sp-in-android
« Risposta #1 il: 12 Agosto 2010, 07:30:30 CEST »
In Android le dimensioni possono essere misurate in:
  • px
    pixels, corrispondenti ai pixel effettivi dello schermo.
  • in
    inches,basati sulle dimensioni fisiche dello schermo, misurate in "pollici".
  • mm
    millimeters, basati sulle dimensioni fisiche dello schermo, misurate in "millimetri".
  • pt
    points, basati sulle dimensioni fisiche dello schermo, misurati in "punti" di 1/72 di pollice l'uno.
  • dp o dip
    density-independent pixels,  rappresenta 1 pixel su uno schermo di 160 dpi (dots per inch). Il rapporto dp-to-pixel cambierà quindi in base alla densità dello schermo.
  • sp o sip
    scale-independent pixels, simile all'unità dp, ma scalato anche in base alle preferenze, specificate dall'utente, per le dimensioni dei fonts.

Una nota particolare va fatta per i dip in uanto unità di misura non proprio convenzionale ma che risulta utile  nonché indispensabile in numerosi contesti. Per giustificarne l'utilizzo è sufficiente immaginare due dispositivi Android che posseggono due schermi dalle stesse dimensioni fisiche ma dalle risoluzioni differenti. A parità di dimensioni fisiche, se il primo schermo possiede una risoluzione di 320x480 e il secondo una di 640x480, quest'ultimo avrà anche unadensità di pixel maggiore del primo, ovvero dpi maggiore. Se, sui due dispositivi, si utilizzassero i pixel per rappresentare un qualunque oggetto, un button di largezza 100px ad esempio, questo apparirebbe più grande nel primo schermo (320x480) e più piccolo nel secondo (640x480). Utilizzando i dip, invece, l'oggetto, un button di largezza 100dp ad esempio, apparirebbe uguale nelle dimensioni in entrambi i dispositivi. Nella creazione delle UI (User Interfaces) è quindi auspicabile l'utilizzo di unità di misura indipendenti dal dispositivo utilizzato, come i dip appunto.

(fonte: Just Share It !: Dimensioni e unità di misura supportate da Android)
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:difference-of-px-dp-dip-and-sp-in-android
« Risposta #2 il: 12 Agosto 2010, 09:30:47 CEST »
JD ha praticamente detto tutto, comunque c'è un articolo sulla documentazione ufficiale che affronta proprio questo argomento in dettaglio.

Supporting Multiple Screens | Android Developers

Merita davvero leggerlo tutto, ma volendo riassumere le linee guida per rendere una applicazione indipendente dalle dimensioni dello schermo, copio e traduco le best practices citate nell'articolo:
  • Nei layout, usare preferibilmente wrap_content, fill_parent e dip piuttosto che px
  • Evitare AbsoluteLayout
  • Non usare valori assoluti in pixel nel codice
  • Prevedere risorse grafiche specifiche per più densità e risoluzioni
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store