webentwicklung-frage-antwort-db.com.de

Warum ist die Dichte von Nexus 6 560 dpi?

Wie bereite ich Ressourcen für Nexus 6 vor? Wenn ich Bilder auf xxxhdpi stelle, werden sie verkleinert und verlieren an Qualität. Ich setze Bilder in xxhdpi, sie werden größer und verlieren an Qualität. Warum entscheiden sich Entwickler für einen Einstellungswert von 560 dpi für die Dichte, wenn die tatsächliche Dichte von 493 ppi näher an xxhdpi ~ 480 dpi liegt?

Das Nexus 6 verfügt über ein beeindruckendes 5,96-Zoll-Quad-HD-Display auf einer Auflösung von 2560 x 1440 (493 ppi). Dies entspricht ~ 730 x 410 dp (dichteunabhängige Pixel).

Nexus 6 hat eine quantisierte Dichte von 560 dpi, die zwischen .__ liegt. xxhdpi und xxxhdpi primäre Dichte-Buckets.

Für das Nexus 6 wird die xxxhdpi-Assets von der Plattform verkleinert, aber wenn Wenn diese nicht verfügbar sind, werden xxhdpi-Assets vergrößert.

xxhdpi ~480dpi
xxxhdpi ~640dpi
31
anber

Im Falle des Nexus 6 wählte der Hersteller eine quantisierte Dichte von 560 (adb Shell getprop ro.sf.lcd_density), obwohl die physikalische Dichte etwa 493 beträgt (getResources (). GetDisplayMetrics (). ToString ()). Um zu verstehen, warum sie dies tun können, müssen Sie die Bedeutung der quantisierten Dichte und deren Auswirkungen auf das Rendering von Bildressourcen verstehen, was hier erklärt wird.

Kurz gesagt bedeutet die quantisierte Dichte von 560, dass der zum Laden/Rendern von Bildern verwendete Skalierungsfaktor 3,5 beträgt. Mit den Worten von D. Hackborn: "Die Dichte ... ist ein abstrakter Dichte-Eimer, den der Gerätehersteller entschieden hat, dass seine Benutzeroberfläche in ausgeführt wird. Dies wird verwendet, um Dinge wie "dp" -Einheiten auszuwerten und Bitmaps aus Ressourcen auszuwählen und zu skalieren. '

7
Joseph Johnson

Sie können drawable-560dpi für 560 dpi verwenden. drawable-560dpi und drawable-xxxhdpi Bilder haben die gleiche Auflösung.

6
Ramesh Kumar

Ich denke, das ist eine berechtigte Frage. Bei einigen Geräten wird zwischen dpis (xxhdpi & xxxhdpi) unterstützt. Durch die Verwendung von Bildern wird die Software-Skalierung unnötig. Ich mache mir keine Gedanken über den Qualitätsunterschied, aber er beeinflusst die Startleistung der Anwendung. Prüfen Sie die Variable willcale in BitmapFatory , falls dies der Fall ist, führt die Plattform unnötige zusätzliche Software-Skalierung durch. Im Idealfall sollte die Hardware unter Verwendung von openGL ES direkt skaliert werden.

1
Prashant Sharma