2016-05-17 3 views
0

Ich habe eine Funktion erstellt, um diagonale Bildschirmgröße basierend auf der Auflösung und Pixeldichte zu berechnen. viz-Was genau ist der Unterschied zwischen der physikalischen Dichte und der physischen Dichte eines Geräts?

def find_display_size(d): 

    width=float(720); 
    height=float(1280); 
    dens=float(294); 
    wi=float(width)/(dens); 
    hi=float(height)/(dens); 
    x = math.pow(wi,2); 
    y = math.pow(hi,2); 
    screenInches = math.sqrt(x+y); 
    diagScreenSizeRoundedoff = round(screenInches) 
    logger.info("screenInches "+str(screenInches),also_console=True) 
    logger.info("diagScreenSizeRoundedoff"+str(diagScreenSizeRoundedoff),also_console=True) 

I die Informationen (Auflösung & Pixeldichte) unter Verwendung von adb Schale holen soll. Wenn ich versuche, dieses command-

$adb shell wm density 

Result- 
Physical density: 320 

Das Ergebnis erhalte ich die physische Dichte eines Gerätes (= 320), aber die Pixeldichte des jeweiligen Gerätes ist (~ 294). Neugierig zu wissen, was genau der Unterschied zwischen diesen beiden ist, auch, wie ich die Pixeldichte mit Hilfe von adb-Befehlen finden kann, die in diesem Fall ~ 294 ist.

PS- Das Gerät arbeite ich auf is- MOTO XT1068

+0

Ich glaube nicht, dass es eine Möglichkeit gibt, die tatsächliche physische Dichte konsistent zu erhalten. Siehe die Kommentare in: http://stackoverflow.com/questions/2193457/is-there-a-way-to-determine-android-physical-screen-height-in-cm--inches –

+0

Es gibt tatsächlich einen Weg. Überprüfen Sie es hier - http://kingscalculator.com/en/other-calculators/pixel-density-calculator. Aber in meinem Fall muss ich die diagonale Bildschirmgröße berechnen, die wiederum Pixeldichte erfordert. –

Antwort

1

Android wird Ihr Gerät zu einem der Gruppe MDPI passend, hdpi, xhdpi etc., die Dichteset behoben haben. z.B. Geräte mit 290-340 dpi verwenden 320 Werte, xxhdpi 480, mdpi nur 160. Diese Dichte wird zum Abrufen von Daten aus Ressourcen verwendet (dimens, für die Berechnung von Xml-Drawables, Größenanpassung von Zeichen, wenn nur im Ordner xxhdpi, aber Gerät ist mdpi etc.) mehr Dichten und über Thema in HERE

Rasterdichte

die Menge von Pixeln innerhalb eines physikalischen Bereich des Bildschirms; normalerweise als dpi (Punkte pro Zoll) bezeichnet. Zum Beispiel weist ein Bildschirm mit "niedriger" Dichte im Vergleich zu einem Bildschirm mit "normaler" oder "hoher" Dichte weniger Pixel innerhalb eines gegebenen physikalischen Bereichs auf.

Zur Vereinfachung gruppiert Android alle tatsächlichen Bildschirmdichten in sechs generalisierte Dichten: niedrig, mittel, hoch, extra hoch, extra hoch und extra hoch.

+0

Das ist richtig, auch ich bin mir dieser Konventionen bewusst, aber das beantwortet immer noch nicht meine Frage (wie genau unterscheidet sich die physikalische Dichte von der Pixeldichte und wie finde ich die Pixeldichtedichte meines Geräts, die auf der Auflösung von das Gerät) –

+0

Pixel sind physikalische Einheit, also nehme ich Pixeldichte = physikalische Dichte. Wenn Sie meinen, dass die in Beispiel 320 erwähnte Dichte physisch ist (adb sagt Ihnen ...) - ist es nicht. Dieser Wert wird vom System mithilfe der Zuordnung zu Dichtegruppenordnern festgelegt. 294 haben Sie berechnet, ist physikalisch und Pixel zur gleichen Zeit, ist 320 gruppierten Wert für Betriebssystem-Nutzung – snachmsm

+0

Macht Sinn, aber gibt es eine Möglichkeit, die genaue Pixeldichte des Geräts mit adb-Befehle zu finden, wie wir alle bekommen können Die Eigenschaften des Geräts sagen "Get-Prop", aber es sagt nichts über Pixeldichte. –

Verwandte Themen