Autore Topic: Display density e dimensione del testo  (Letto 1086 volte)

Offline ligio

  • Nuovo arrivato
  • *
  • Post: 24
  • Respect: +1
    • Mostra profilo
    • Ligio Blog
  • Dispositivo Android:
    htc wildfire, ZT180 v2
  • Play Store ID:
    Marco Lijoi
  • Sistema operativo:
    Windows Vista
Display density e dimensione del testo
« il: 02 Agosto 2011, 11:38:55 CEST »
0
Ciao a tutti!
Ho letto la pagina del manuale per il supporto ai diversi tipi di display (Supporting Multiple Screens | Android Developers) e così ho fatto alcune prove che però mi hanno lasciato dei dubbi.

Grazie all'AVD ho creato infatti due emulatori con risoluzione 480x800, uno con lcd.density=160 (mdpi) e uno con lcd.density=240 (hdpi).
Ho inserito una TextView e gli ho settato uno stile con textSize = 22dp e mi aspettavo che la sua dimensione fosse identica (o almeno simile!) nei due emulatori a diversa densità!

Invece nell'emulatore HDPI la dimensione del testo è mooolto più grande, circa una volta e mezzo!

Dal manuale credevo di aver letto che utilizzando come unità di misura i DP le dimensioni dovrebbero automaticamente "ridimensionarsi" per ottenere la stessa resa su schermi a densità diversa, ma non è quello che ho ottenuto io "provando con mano"

Dove ho sbagliato dunque? Ho interpretato male il manuale?

grazie a chiunque voglia aiutarmi...

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Display density e dimensione del testo
« Risposta #1 il: 02 Agosto 2011, 23:19:06 CEST »
0
I dp hanno esattamente lo scopo che descrivi, mantenere le stesse dimensioni su display fisici diversi. Sinceramente non ho idea se ciò valga anche per gli emulatori.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Display density e dimensione del testo
« Risposta #2 il: 03 Agosto 2011, 00:21:33 CEST »
0
il tuo "problema" è che hai cambiato la densità!
la densità sono appunto i pixel per pollice (o comunque density per inches) e te nei due emulatori hai messo densità 160 e 240.
240 = 1.5 * 160.
Ecco perchè, una textview con size 22dp su schermo da 240 dpi è esattamente 1.5 volte la textview su display a 160dpi!
se le vuoi della stessa dimensione devi prendere un display piu piccolo per l'mdpi!

Citazione
The conversion of dp units to screen pixels is simple: px = dp * (dpi / 160)
quindi:
22 * (160/160) = 22 (mdpi)
22 * (240/160) = 33 (hdpi)

quindi per il dispositivo mdpi dovresti prendere uno schermo 400x800 / 1.5 sarebbe circa 266x500, credo che un 320x480 sia sufficiente (è tardi, i conti mi uccidono :D)
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia