2012-10-10 5 views
5

Ich habe eine Android-Anwendung, die ordnungsgemäß für Nexus 7 funktioniert. Inside-Ressourcen-Ordner, habe ich zwei Ordner, layout, layout-land für Nexus 7 "Registerkarte erstellt. Alles funktionierte gut bis Datum. Jetzt möchte ich ein anderes Layout erstellen Für Samsung Galaxy S3. Dafür habe ich einen Ordner in Ressourcen mit layout-large & layout-large-land erstellt. Aber, hier ist das Problem. Jetzt, für Nexus 7 auch, das Layout in layout-large Ordner definiert wird geladen. Wie man das zu stoppen? Wie kann ich ein anderes Layout für das Nexus 7 "Tab & Galaxy S3 Handy erstellen? Ich habe Supporting Multiple Screens Dokumentation gelesen. Aber ich kann nicht verstehen, wie die Bildschirmgröße für Nexus 7 ist 1204 X 800 & Bildschirmgröße für Samsung Galaxy S3 ist 720 X 1280.Wie erstelle ich ein anderes Layout für Galaxy S3 und Nexus 7?

Wie verschiedene Layouts für verschiedene Geräte mit unterschiedlichen Bildschirmauflösungen & Displaygrößen schaffen? Außerdem möchte ich, basierend auf der Größe des Geräts, einige Werte in meiner Anwendung ändern. Wie macht man das?

+1

Ja, das ist die Hauptnachteile von Android. Zu viele Anbieter machen ihre eigenen Größen. Vielleicht möchten Sie einen Blick auf meine vorherigen ähnlichen Fragen über mehrere Bildschirme auf http://stackoverflow.com/questions/11584107/how-to-deal-with-android-xlarge-screen oder http://stackoverflow.com/ Fragen/11008199/what-Layout-ist-geeignet-für-720x1280-Android-Geräte oder http://stackoverflow.com/questions/10992764/how-android-manages-screen – rxlky

Antwort

10

Nach dem Supporting Multiple Screensenter image description here

Qualifier wie small, normal, large und xlarge ist für Screen Sizes, was bedeutet, dass Nexus 7 die Ressourcen mit large Qualifier verwendet, wenn Sie angeben. Bevor Sie den Ordner mit dem Qualifikationsmerkmal large erstellen, lädt Nexus 7 daher die Ressourcen aus dem Standardlayoutordner. Wie für ldpi, mdpi, hdpi und xhdpi ist für die Bildschirmdichte.

Ihr Problem zu lösen, benötigen Sie:

  1. die Layout-Definitionen für Galaxy S3 in Layout setzen und Layout-sw600dp für Nexus 7 auf Android Developers Blog verweisen: Getting Your App Ready for Jelly Bean and Nexus 7

  2. Legen Sie die Ressourcen (Bilder oder Zeichenmaterial) für das Galaxy S3 in "drawable-xhdpi" und "drawable-tvdpi" oder "drawable-hdpi" für Nexus 7 ein.

Hoffe, dass es Ihnen helfen könnten, und lassen Sie es mich wissen, wenn Sie irgendwelche anderen Probleme haben :)

Hier sind einige nützliche Hinweise:

What layout is suitable for 720x1280 Android devices?

Screen Width Qualifier

+0

Auch nachdem ich meine Layout-Definitionen für s3 in' layout' gelegt habe, wird 'layout-large' geladen – Bharath

+0

Dann versuche bitte Definitionen für s3 in' layout' zu schreiben , und setze diese für Nexus in 'layout-sw600dp' nach [Android Developers Blog] (http://android-developers.blogspot.co.uk/2012/07/getting-your-app-ready-for-jelly-) bean.html). Inzwischen habe ich auch meine Antwort aktualisiert, um diesen Kommentar hinzuzufügen. – dumbfingers

+0

Nein, das ist in Ordnung. Es funktioniert jetzt gut, wenn ich Ihren vorherigen Kommentar implementiert habe. Deshalb habe ich diesen Kommentar gelöscht. Mein Fehler war, Emulator-Konfiguration für S3 war nicht korrekt. deshalb. Wie auch immer, danke für deine Mühe. +25 – Bharath

0

Sie benötigen eine für xlarge und xlarge Land aswell

Oder Sie können es programmatisch tun durch den Aufruf:

Display displayparm= activity.getWindowManager().getDefaultDisplay(); 
int width= displayparm.getWidth(); 
int Height= displayparm.getHeight(); 

und das Layout dieser Informationen wählen

+0

@Andres .. Ich dint dich hier. für welches sollte ich 'xlarge' verwenden. Ich habe ein solches Layout erstellt. Auch wenn 'layout-large' für S3 & Nexus geladen wird 7 – Bharath

0

Sie könnten das Layout erstellen, indem Sie einen neuen Ordner unter dem Ordner res hinzufügen als Layout-xlarge und Layout-xlarge große und u die Android-Manifest-Datei als auch zu aktualisieren haben die für eine höhere Auflösung

0

ich eine Anwendung entwickelt haben, zu unterstützen, wo ich mehrere Geräte mit unterschiedlicher Auflösung und Dichten unterstützen . mit nexus 7 und galaxy s3 auch einer unter ihnen. Galaxy S3 und Nexus7 werden natürlich aus dem großen Bildschirm Ordner nehmen, wenn Sie Layout-großen Ordner in Ihrem Projekt haben. Aber Galaxie s3 fällt unter große hdpi Kategorie und nexus7 fällt unter Groß-tvdpi Kategorie. so wird es sehr nützlich sein, wenn Sie Layout-groß-hdpi und Layout-groß-tvdpi für s3 und nexus7 jeweils haben.

Verwandte Themen