2016-08-30 3 views
1

Ich brauche ein anderes Layout für Gerät 4.0, 4.5 und 5.0.Android verschiedene Layouts für 4.0, 4.5 und 5.0 Geräte

Aber ich geprüft Bildschirmgröße Breite mit:

Display display = getWindowManager().getDefaultDisplay(); 
DisplayMetrics outMetrics = new DisplayMetrics(); 
display.getMetrics(outMetrics); 

float density = getResources().getDisplayMetrics().density; 
float dpWidth = outMetrics.widthPixels/density; 

Und auf

Sony Xperia Sp I have W: 360.0 H: 592.0 
Sony Xperia Z I have the same result W: 360.0 H: 592.0 

aber Bildschirme haben differents Größen und Layout sieht wirklich diffrent.

Wie erstellt man verschiedene Layouts für diese und andere Gerätegrößen richtig?

EDIT:

In diesem Fall Layouts wirklich anders aussehen, weil man von Telefonen FONT SIZE im Geräte-Einstellungen .. GG Gut gespielt Tester verändert hatte:)

Thx alle. Bis abstimmen.

+0

Lesen Sie das Training Tutorial https://developer.android.com/training/basics/supporting-devices/index.html - Nebenbei bemerkt, gibt es keine solche Sache wie Android 4.5 – mhenryk

+1

@ mhenryk Ich denke, OP bezieht sich auf Bildschirmdiagonale 4,5 Zoll – Henry

Antwort

1

Android verwendet dichteunabhängige Pixel (dp), daher sollte es ziemlich einfach sein, sich an verschiedene Größen anzupassen. Erstellen Sie in Ihrem Ordner res Unterordner wie layout-w320p und passen Sie Ihr Layout in diesem Ordner an, um es an verschiedene Bildschirmgrößen anzupassen.

Versuchen Sie immer, RelativeLayout anstelle von FrameLayout zu verwenden, und positionieren Sie Elemente relativ zum Gerät. Item-Größen sollten Wrap_Content gemacht werden, so dass es automatisch auf das Gerät verkleinert wird.

+0

Ich weiß es. http://stackoverflow.com/questions/39221526/android-using-wrong-layout/39221695?noredirect=1#comment65781728_39221695. – Esperanz0

1

können Sie verschiedene Layout bieten basierend auf genaue Breite in Pixel, da Sie bereits kennen:

Beispiele

res/layout/main_activity.xml   # For handsets (smaller than 600dp available width) 
res/layout-sw600dp/main_activity.xml # For 7” tablets (600dp wide and bigger) 
res/layout-sw720dp/main_activity.xml # For 10” tablets (720dp wide and bigger) 

res/layout/main_activity.xml   # For handsets (smaller than 600dp available width) 
res/layout-w600dp/main_activity.xml # Multi-pane (any screen with 600dp available width or more) 

Lesen Sie die offizielle Android-Dokumentation über Supporting Multiple Screens

+0

Ich weiß. Aber ich sagte 2 verschiedene Geräte (und Größen) hat die gleiche Breite in dp. Also benutze das gleiche Layout in meinem Beispiel sw320dp. Aber ich wollte anders für Sony SP und Z. – Esperanz0

+0

Ah okay, haben sie e verschiedene Versionen von Android? Dann könnten Sie ein zusätzliches Qualifikationsmerkmal für die Plattformversion – AndroidMechanic

1

Sony Xperia Sp I habe W: 360.0 H: 592.0Sony Xperia Sp Ich habe W: 360.0 H: 592.0

Sony Xperia Z Ich habe das gleiche Ergebnis W: 360.0 H: 592.0.

Dies ist keine Bildschirmgröße .. Es hängt völlig von der Bildschirmauflösung Ihres Geräts ab.

Wenn pflegen diese Bildschirmauflösung anderes Layout oder Wertdatei als

Wert-sw320dp-hdpi Wert-sw320dp-xhdpi Wert-sw320dp-xxhdpi

schaffen sollte OR

einziehbar-sw320dp-hdpi
ziehbar-sw320dp-xhdpi

ziehbar-sw320dp-xxhdpi

+0

hinzufügen Wert-sw320dp-hdpi Wert-sw320dp-xhdpi Wert-sw320dp-xxhdpi es half –

Verwandte Themen