2015-02-12 4 views
29

Wie bereiten Sie Ressourcen für Nexus 6 vor? Wenn ich Bilder auf xxxhdpi setze, werden sie verkleinert und verlieren an Qualität. Ich stelle Bilder auf xxhdpi, die skaliert werden und an Qualität verlieren. Warum Entwickler entschieden Setup-Wert 560dpi für die Dichte, wenn reale Dichte 493ppi näher xxhdpi ~ 480dpi ist? Warum Nexus 6 Dichte 560 dpi?

Das Nexus 6 verfügt über einen beeindruckenden 5,96” Quad HD-Bildschirm auf einer Auflösung von 2560 x 1440 (493 ppi). Dies ergibt ~ 730 × 410 dp (dichteunabhängige Pixel).

Nexus 6 hat eine quantisierte Dichte von 560 dpi, die zwischen den Primärdichte-Buckets xxhdpi und xxxhdpi liegt.

Für das Nexus 6 wird die Plattform xxxhdpi Assets herunterskalieren, aber wenn diese nicht verfügbar sind, wird es xxhdpi Assets vergrößern.

xxhdpi ~480dpi 
xxxhdpi ~640dpi 
+1

"Warum Entwickler" Fragen wie diese sind normalerweise nicht für Stack Overflow geeignet. – CommonsWare

+1

'Ich lege Bilder auf xxxhdpi, sie werden verkleinert und verlieren an Qualität. Ich stelle Bilder auf xxhdpi, sie werden vergrößert und verlieren an Qualität. "Sie erhalten eine bessere Qualität, wenn Bilder skaliert werden ** nach unten ** (mittlere Annäherung) und nicht nach oben (Pixelierung). –

+4

Gibt es eine Option, Ressourcen genau für dieses Telefon anzugeben? etwas wie Drawable-560dp –

Antwort

7

Im Fall des Nexus 6, wählte der Hersteller eine quantisierte Dichte von 560 (ADB Schale getprop ro.sf.lcd_density), obwohl die physikalische Dichte etwa 493 (GetResources(). GetDisplayMetrics() .toString()). Um zu verstehen, warum sie dies tun können, muss man die Bedeutung der quantisierten Dichte verstehen und wissen, wie sie das Rendern von Bildressourcen beeinflusst, was erklärt wird here.

Kurz gesagt bedeutet die quantisierte Dichte von 560, dass der zum Laden/Rendern der Bilder verwendete Skalierungsfaktor 3,5 beträgt. In den Worten von D. Hackborn, "Die Dichte ... ist eine abstrakte Dichte Eimer der Gerätehersteller hat entschieden, macht Sinn für ihre Benutzeroberfläche in laufen. Dies wird verwendet, um Dinge wie "dp" -Einheiten zu bewerten und Bitmaps aus Ressourcen auszuwählen und zu skalieren. '

1

Ich denke, es ist eine gültige Frage. Einige Geräte sind zwischen unterstützten dpis (xxhdpi & xxxhdpi), die Verwendung von Bildern wird unnötige Software-Skalierung tun. Ich kümmere mich nicht um den Qualitätsunterschied, aber es wird die Startleistung der Anwendung beeinflussen. Überprüfen Sie die Variable willscale in BitmapFatory, wenn dies wahr ist, wird die Plattform unnötige zusätzliche Software-Skalierung tun. Idealerweise sollte die Hardware dies direkt mit openGL ES skalieren.

4

Sie können drawable-560dpi für 560 dpi verwenden. drawable-560dpi und drawable-xxxhdpi Bilder sind in der gleichen Auflösung.

Verwandte Themen