Autore Topic: Realizzare righello con dimensioni reali  (Letto 377 volte)

Offline Melanogaster

  • Utente normale
  • ***
  • Post: 260
  • Respect: +11
    • Mostra profilo
  • Dispositivo Android:
    SII
  • Sistema operativo:
    Kubuntu
Realizzare righello con dimensioni reali
« il: 01 Febbraio 2015, 01:33:03 CET »
0
Ciao a tutti,
avrei in mente di realizzare una funzione, nella mia app, che mostri a schermo un righello (disegnato con canvas).
Avete qualche idea su come realizzare il righello in dimensioni reali a prescindere dal display del dispositivo?
Qualche spunto?

Grazie :)

Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 594
  • Respect: +132
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:Realizzare righello con dimensioni reali
« Risposta #1 il: 02 Febbraio 2015, 10:47:21 CET »
0
Potresti fare così:

Codice (Java): [Seleziona]
 DisplayMetrics metrics = new DisplayMetrics();
 getWindowManager().getDefaultDisplay().getMetrics(metrics);
 float orizzontale = (metrics.densityDpi * metrics.widthPixels) / 2.54; //Dimensioni in centimetri dell'asse orizzontale
 float verticale = (metrics.densityDpi * metrics.heightPixels) / 2.54; //Dimensioni in centimetri dell'asse verticale
 float pixelPerMillimetro = metrics.densityDpi / 25.4; //Pixel per ogni millimetro

considera però che il sistema operativo non è in grado di darti una precisione al centimetro. Uno schermo da 5 pollici ed uno da 4,8 pollici molto probabilmente restituiscono lo stesso risultato.
Ohmnibus
Le mie app su Play Store

È stata trovata una soluzione al tuo problema? Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato.

Offline arlabs

  • Utente normale
  • ***
  • Post: 430
  • Respect: +49
    • Mostra profilo
  • Dispositivo Android:
    GalaxyS6, Nexus5
  • Play Store ID:
    AR Labs
  • Sistema operativo:
    Windows 10
Re:Realizzare righello con dimensioni reali
« Risposta #2 il: 02 Febbraio 2015, 10:49:02 CET »
0
getDisplayMetrics ti ritorna le misure che ti servono. http://developer.android.com/reference/android/content/res/Resources.html#getDisplayMetrics()

usa xdpi e ydpi, che sono le risoluzioni "vere" del diplay.

density e densityDpi sono solo le risoluzioni "logiche", un approssimazione, non quella esatta.

Poi da lì puoi farti i conti che ti servono per scalarti il righello.


Una nota: mi è capitato su un dispositivi, di non vedere le cose scalate alla misura esatta che mi aspettavo. Per me non era un problema e non ho indagato, ho però il dubbio che qualche dispositivo non ritorni i valori xdpi e ydpi reali.
In particolare mi pare di averlo visto su un Galaxy Express 2 (non ci giurerei però).

Ciao

Offline Melanogaster

  • Utente normale
  • ***
  • Post: 260
  • Respect: +11
    • Mostra profilo
  • Dispositivo Android:
    SII
  • Sistema operativo:
    Kubuntu
Re:Realizzare righello con dimensioni reali
« Risposta #3 il: 05 Febbraio 2015, 08:16:15 CET »
0
Mi avere dato un ottimo spunto per approfondire l'argomento, grazie mille ;)