2017-02-25 9 views
0

Also habe ich in Werte die folgende Put/Dimens & Werte/dimens-MDPILegendes android Werte/Dimens

<dimen name="rv_height">220dp</dimen> 
<dimen name="rv_width">280dp</dimen> 

und folgende Unterlagen in Werte-xxhdpi/Dimens

<dimen name="rv_height">260dp</dimen> 
<dimen name="rv_width">320dp</dimen> 

Meine Frage ist, wenn ich diese auf 480 x 800 hdpi API 17 Emulator ausführen, warum tut es ladendimensionen von xxhdpi ordner und nicht die regelmäßige dimen oder dimens-mdpi ordner?

Antwort

2

Nach Official docs

die Art und Weise zu vereinfachen, dass Sie Ihre Benutzerschnittstelle für Bildschirme mehr Designs, teilt Android den Bereich der tatsächlichen Bildschirmgrößen und Dichten in:

LDPI (low) ~ 120dpi

MDPI (mittel) ~ 160dpi

hdpi (high) ~ 240dpi

xhdpi (extra-high) ~ 320dpi

xxhdpi (extra-extra-high) ~ 480dpi

xxxhdpi (extra-extra-extra-high) ~ 640dpi

Edit:

ich werde versuchen, es Ihnen zu erklären:

Ein Gerät von 480 px auf hdpi hat 320 dp, weil aus der Dokumentation, "auf einem 240 dpi Bildschirm, 1 dp gleich 1,5 physikalische Pixel". bedeutet 400 px/1,5 = 320 dp.

Jetzt haben Sie Werte/Dimens & Werte/dimens-MDPI & & Werte-xxhdpi/Dimens

und wieder docs nach

Wenn jedoch das System sucht nach einer dichte-spezifischen Ressource und findet es nicht im dichte-spezifischen Verzeichnis, es wird nicht immer Verwenden Sie die Standardressourcen. Das System kann stattdessen einen der anderen dichtespezifischen Ressourcen verwenden, um beim Skalieren bessere Ergebnisse zu erhalten.Wenn zum Beispiel nach einer Ressource mit niedriger Dichte gesucht wird und diese nicht verfügbar ist, zieht das System es vor, die High-Density-Version der Ressource zu verkleinern, da das System eine hochdichte Ressource auf einen niedrigen Wert skalieren kann -density um einen Faktor von 0,5, mit weniger Artefakten, im Vergleich zu Skalierung einer Ressource mittlerer Dichte von einen Faktor von 0,75.

Fazit: Es ist kein Gewähr dafür, dass das Standardverzeichnis immer benutzt wird, wenn res-Verzeichnis fehlt. Und in Ihrem Fall hat es die Ressource mit der höheren Dichte auf eine niedrige Dichte herunterskaliert.

Ich hoffe es ist jetzt klar.

+0

Sie haben meine Frage nicht beantwortet. – ThunderRoid

+0

eigentlich tat ich, Sie laufen ein Gerät mit 480 dpi Bildschirmdichte und Sie erstellt den Ordner 'values-xxhdpi/dimens' was bedeutet, dass Ihre App die Werte in diesem Ordner verwendet wird! –

+0

Das ist die Auflösung nicht die dpi, die dpi ist hdpi – ThunderRoid