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:
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?
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.
Tags und Links android layout android-4.0 version screen-size