Programmieren Sie verschiedene Layouts für verschiedene Versionen in Android

8

Ich muss meine Android App mit der besten Kompatibilität auf verschiedene Bildschirmgrößen (Tablets und Smartphones) und auf die Versionen 2.3, 3.2 und 4.0 programmieren. Ich kenne die Möglichkeit, die Ordner des Layouts wie res / layout-sw600dp / zu benennen. um das Layout exakt an verschiedene Bildschirmgrößen anzupassen.

Da ich also komplett verschiedene Layouts für Tablets / Smartphones verwende, würde ich mit einem "Load Screen" starten, der testet, welche Android-Version verwendet wird und ob ein Tablet- oder Smartphone-Gerät, zum Beispiel im Layout des Tablets, wird es auf einigen Bildschirmen Buttons geben, die auf dem Smartphone nicht vorhanden sind.

Also muss ich das alles in Paketen wie folgt trennen:

  • Gemeinsam
  • 2.3
    • Tablet
    • Smartphone
  • 3.2
    • Tablet
    • Smartphone
  • 4.0
    • Tablet
    • Smartphone

Ich würde diese Trennung wählen, weil es meines Erachtens der beste Weg ist, sich auf bevorstehende * Updates * vorzubereiten, wenn, sagen wir mal, es hinzugefügt werden sollte eine Schaltfläche in der ToolBar in Android 4.0.

Ist diese Trennung Ihrer Meinung nach eine gute Sache oder ist das eine vollständige Überlastung?

Gibt es noch andere neue Funktionen in 4.0, auf die ich achten sollte?

    
10ff 18.01.2012, 10:24
quelle

2 Antworten

15

Sie können Ihre Ressourcenordner auch so benennen, dass sie die Versionsnummer (wie /res/layout-v11 ) oder ( /res/values-v13 ) angeben

Was Ihre Frage nach der Trennung betrifft - es hängt wirklich von Ihrer speziellen Anforderung ab. Ein gängiger Ansatz für dieses Problem ist ein Fall-back-Mechanismus: Sie stellen einige spezifische Layouts (z. B. ein xlarge v11-Layout) und einige allgemeine Varianten bereit, auf die Sie zurückgreifen können.

Natürlich ist das eine "idealistische" Lösung; und es funktioniert nicht immer so. Mit anderen Worten, es ist sehr schwierig, eine App, die mit so vielen Android-Versionen kompatibel ist, praktisch nur mit alternativen Ressourcen zu implementieren. Selbst wenn Sie die Kompatibilitätsbibliotheken verwenden (was bei der Reduzierung von versionsspezifischem Code ein wenig hilft); Sie müssen Ihren Code zur Laufzeit noch an die Version anpassen.

    
curioustechizen 18.01.2012, 12:20
quelle
6

Sie können die Android-Version unter Build.VERSION finden.

Die Dokumentation empfiehlt, Build.VERSION.SDK_INT auf die Werte in Build.VERSION_CODES zu überprüfen.

Und basierend auf dieser Version können Sie Ihre Layouts unter sonst Bedingungen setzen

    
bindal 18.01.2012 10:31
quelle