xlarge vs sw720dp Bildschirmgröße Verwirrung

8

Als Referenz: Ссылка

Die Größenquantoren im alten Stil sind "veraltet":

  

Ein Satz von vier verallgemeinerten Größen: klein, normal, groß und xgroß   Hinweis: Ab Android 3.2 (API Level 13) sind diese Größengruppen   Abgelehnt zugunsten einer neuen Technik zur Verwaltung von Bildschirmgrößen   auf der verfügbaren Bildschirmbreite. Wenn Sie für Android 3.2 entwickeln   Weitere Informationen finden Sie unter Deklarieren von Tablet-Layouts für Android 3.2   Informationen.

Ich hatte gehofft, dass Geräte mit 3.2+ immer noch Ressourcen verwenden, die in drawable-large-mdpi oder layout-xlarge deklariert sind, aber das scheint nicht der Fall zu sein.

Ich habe ein Testprojekt, das eine Layoutdatei für jede dieser Größen enthält:

  • Layout-sw600dp
  • Layout-720dp
  • layout-xlarge
  • Layout

Bei einem 10 "Motorola XOOM mit Android 4.0.x wählt das Gerät das Layout im Ordner layout-720dp. Wenn dieser Ordner nicht existiert, wird das Layout im Ordner layout-sw600dp ausgewählt! Why Wählt es nicht das Layout in Layout-Xlarge?

Noch seltsamer ist, habe ich Zeichen in diesen Ordnern:

  • dropable-sw600dp-mdpi
  • drawable-xlarge-mdpi

Das 10 "Motorola XOOM von oben, wählt das Bild von drawable-sw600dp-mdpi. Warum wählt es nicht das Zeichen in drawable-xlarge-mdpi aus?

Sollten wir nicht erwarten, dass der Xlarge-Quantifizierer überhaupt über Android 3.2 funktioniert?

Bedeutet dies, dass ich alle Assets im Ordner "drawable-xlarge-mdpi" in den Ordner "drawable-sw720dp-mdpi" kopieren muss? (Um Android 3.0, 3.1 UND 3.2 + zu unterstützen?)

Hoffentlich fehlt mir hier einfach etwas Einfaches. Bitte beraten.

    
NPike 20.07.2012, 15:39
quelle

1 Antwort

6

Wenn Sie nach meinem Verständnis für Android 3.2 oder höher über mindestens einen Ordner verfügen, der die neuen Größenquantifizierer verwendet, wird davon ausgegangen, dass Sie diese neuen Größenquantifizierer überall verwenden. Aus diesem Grund ignoriert es Layout-Xlarge oder irgendeinen anderen Ordner, der die alten Quantifizierer verwendet.

Hinsichtlich der Abwärtskompatibilität müssen Sie in Ihrem Projekt beide Arten von Quantifizierern verwenden. Die alten werden für API & lt; 3.2 und die neuen für API & gt; = 3.2. Um Doppelungen zu vermeiden, können Sie für die Layouts Aliase verwenden. Für Drawables kenne ich jedoch keine Lösung, um Doppelungen zu vermeiden.

    
Catalin Morosan 23.07.2012, 18:43
quelle

Tags und Links