2016-09-12 2 views
0

Ich habe die offizielle Dokumentation gelesen, verstehe sie aber immer noch nicht!Wie funktioniert die kleinste Breite für Layouts in diesem Beispiel?

Ich spiele und experimentiere mit den kleinsten Layouts in Android und es ergibt keinen Sinn für mich.

Ich habe diese Layouts erstellt: sw-300dp/350dp/360dp/400dp/450dp/500dp/ Aber mein Galaxy S7 verwenden die sw-360dp layout. Aber 360dp ist weit von keiner der Zahlen, die durch getDisplayMetrics(); oder die Nummern des Bildschirms, den ich von GSMArena erhielt, bewiesen werden. Warum also Galaxy S7 360dp und nicht 500dp verwenden, da die xdpi 580dp und näher an 500dp ist?

Test Phone: Samsung Galaxy S7

Bildschirmgröße: 5.1"

Auflösung: 1440x 2560 (577 ppi)

Von det Logcat retrived ich folgende Bildschirm Werte des Telefons:

getDisplayMetrics().densityDpi: 640 
getDisplayMetrics().xdpi: 580 
getDisplayMetrics().ydpi: 575: 
getDisplayMetrics().widthPixels: 1440 
+0

Die Breite beträgt 1440 Pixel. Wie viele DP ist das? DisplayMetrics gibt Ihnen das Pixel zu dp Verhältnis für das Gerät –

+0

@FletcherJohns Ich weiß nicht, wie viele dp das ist. – Muddz

+0

Was ist getDisplayMetrics(). Dichte? –

Antwort

1

Die Dichte des Bildschirms auf der S7 ist 4,0

Das bedeutet, dass es 4 Pixel pro dp gibt, daher ist der Bildschirm 1440/4 = 360dp breit.

ich die folgenden Methoden häufig:

public static int dpToPx(int dp) { 
    return (int) (dp * Resources.getSystem().getDisplayMetrics().density); 
} 

public static int pxToDp(int px) { 
    return (int) (px/Resources.getSystem().getDisplayMetrics().density); 
} 
+0

Ahaaa! Also muss ich nur die Breite eines Bildschirms mit der Dichtezahl teilen, um die kleinste Breite zu erhalten! – Muddz

+0

Fast. Die Idee der "kleinsten Breite" ist, dass das Layout nicht auf einem Bildschirm verwendet wird, der weniger als 360 dpi breit ist. Versuchen Sie beispielsweise, das Layout zu entfernen und zu sehen, welches das Telefon dann verwendet. Meine Vermutung ist, dass es die 350dp verwenden wird. –

+0

Ja, es verwenden sw300dp. Aber gibt es Standard-swxxxdp Schemas/Sheet, die Ihnen sagen können, welche Zahlen für welche Bildschirmgrößen/Modelle sind oder muss ich all das für jedes Layout in verschiedenen Telefonen berechnen? – Muddz

Verwandte Themen