2013-01-01 18 views
5

Kürzlich entwickeln ich eine App für Galaxy 10.1, 7 Zoll mit 1024x600, 480x800, Hinweis mit 800 Höhe abd S3 mit 720 Höhe. Sie laufen alle perfekt auf diese Auflösung. Aber wenn wir über Note 2 und Galaxie 7 Plus und andere sprechen, haben wir einige Probleme. Das ist, dass die Layouts auf diesen Geräten nicht korrekt angezeigt werden. Darauf iam ein Problem in Layouts mit Blick verwende i Layouts Ordner für Note als Layout-normal-xhdpi-1280x800 und für S3-Layouts-normal-xhdpi-1280x720 und in einem Ordner all Layouts platzieren, die man all diese Layouts apk Unterstützung macht.Layouts auf verschiedene Modelle von Mobiltelefonen

Aber wenn Kunden die apk herunterladen, haben sie mit einem Problem zu tun, das das Galaxy Note die Layout-Normal-xhpi-1280x720 Layouts und es war richtig, aber S3 und Galaxy Note 2 haben unterschiedliche Dichte.

Aufgrund dieses Problems kann ich nicht herausfinden, wie Layout-Ordner für S3 zu erklären und Hinweis 2. Gibt es eine Möglichkeit, dass ich nur vier Ordner

Layout-Xlarge Standard zu verwenden

Layout-Xhdpi mit normale

Layout-MDPI

Layout-hdpi mit normalen

und unterstützt die alle Layouts für alle Bildschirme wie S3, Note 1, Note 2, 7 Zoll plus und andere. Wenn ich versuche, mein Projekt zu starten, habe ich immer an die großen berühmten Spiele gedacht, wie eines davon ist "Temple Run", das auf allen Handys und Tabs läuft.

machen Haufen von Layouts Ordner meine app schwer machen, wie es 80MB Grenze überquert und Google-Markt akzeptiert nur weniger als 50 MB-Anwendungen.

Pro grammatisch ist es eine Möglichkeit, dass wir nur ein Layout-Ordner verwenden und dieses Layout auf allen Bildschirmen unterstützen. Ich las die Anzahl der Artikel und Android-Entwickler-Portal, aber sie haben mich nicht zufrieden gestellt.Sie ​​alle sagten, Sie müssen verschiedene Layout-Ordner für verschiedene Bildschirme und sogar auf StackOverflow habe ich die gleiche Situation zum Speichern meiner Zeit in ersten Projekten Ich benutze diese Techniken, aber meine Arbeit wächst jetzt Tag für Tag und ich möchte, dass ich mit diesen Techniken, die meine App nicht schwer wegen dieser Reihe von Layouts machen plus meine Zeit verschwenden, die Anzahl der Layouts für die Anzahl der App machen.

Anzahl der Hilfe wird geschätzt, und ich möchte Antworten und Anregungen, weil diese Probleme durch die Anzahl der Entwickler, die neu und andere auch konfrontiert sind.

+0

+1 für große Frage. –

Antwort

2

ich ein solches Problem konfrontiert bin auch in meiner Anwendung. Aber ich habe eine gute Lösung dafür gefunden. Ich habe nur ein Layout für tablet und Verzeichnisname ist layout-sw600dp. Jetzt , wenn ein Teil zu Höhe und Breite Problemen kam, habe ich mehr verschiedenes values Verzeichnis erstellt, in dem ich dimensions und font size und anderen Stubs platzieren. Es wird also keinen constant Wert in layout Tablet-Bildschirm geben.

androd:layout_width:"60dp" // i drop this scenario 

androd:layout_width:"@dimen/tab_width" // i used this scenario 

und Ihr values Verzeichnisname wird wie

values-xlarge 
values-large 

Alle Werte werden aus Ihren Werten Verzeichnis abgerufen werden. Es wird kein anderes Layout erstellt, aber ein Layout kann mehrfach verwendet werden.

Edit:

Im Folgenden sind Worte Developer.android Website. Konfigurationsbeispiele

Um Sie einige Ihrer Entwürfe für verschiedene Arten von Geräten Ziel, hier sind einige Zahlen für typisches Rasterweiten:

320dp: a typical phone screen (240x320 ldpi, 320x480 mdpi, 480x800 hdpi, etc). 
480dp: a tweener tablet like the Streak (480x800 mdpi). 
600dp: a 7” tablet (600x1024 mdpi). 
720dp: a 10” tablet (720x1280 mdpi, 800x1280 mdpi, etc). 

Verwenden der Größe Qualifier aus Tabelle 2 kann Ihre Anwendung zwischen wechseln Ihre verschiedenen Layout-Ressourcen für Mobilteile und Tablets mit einer beliebigen Nummer für Breite und/oder Höhe. Zum Beispiel, wenn 600dp die kleinste verfügbare Breite von Ihrem Tablet-Layout unterstützt wird, können Sie diese beiden Sätze von Layouts bieten:

res/layout/main_activity.xml # Für Handys
res/Layout-sw600dp/main_activity.xml # für Tabletten

===

In diesem können Sie sehen, dass das Layout für 1280 * 720 ist unter layout-sw720dp so statt layout-normal-xlarge Erstellen Sie sollten diese Sache benutzen, die Sie Unterschiede entscheiden lässt. Anstatt sich mit layout-large-mdpi und layout-large-ldpi anders zu identifizieren, identifizieren Sie sich nicht einfach mit smallest width? Da Android drawables Verzeichnis für verschiedene Bilder bietet, ist nur seine Auflösung. Und Sie haben über Lösung.

+1

layout-sw600dp unterstützt oben 3. Und ich entwickle meine App von 2.2 bis über – User42590

+0

nein, es ist nicht wahr. Ich entwickle Anwendung in 2.3. Aber alle Tablet-Version API sind über 3. So können sie 'Layout-sw600dp' verstehen. Wenn Sie es noch nicht versucht haben, versuchen Sie es. Du wirst ein Ergebnis bekommen. –

+1

Ja, ich versuche dies, aber ich möchte nur einen Layout-Ordner und es gibt eine Reihe von Bildschirmen einschließlich Registerkarte und Handys, so dass ich die Anzahl der Dimensionen für sie deklarieren muss. so Problem wird auch nach diesem – User42590

Verwandte Themen