Verschiedene Display Größen?

  • Antworten:6
Fabian
  • Forum-Beiträge: 144

27.09.2014, 01:56:20 via Website

Hey Community,

ich entwickel gerade eine stinknormale App mit einem Hintergrund und ein paar Elementen im Layout. Jetzt hat mir mein Grafiker das ganze in 1080 * 1920 mit 320 dpi gezeichnet. Wenn man jetzt einen dieser Elemente in den Hintergrund setzt (auf dem Desktop) passt alles perfekt. Setze ich das ganze jetzt aber in den "drawable" Ordner, werden die Elemente vergrößert und der Hintergrund gestaucht. Woran liegt das jetzt? Ich habe das ganze mal testweise in den "xxhdpi" Ordner gesteckt. Nun sieht es auf dem layout Manager mit dem Nexus 5 (1080 * 1920) xxhdpi sehr gut aus. Teste ich jetzt allerdings auf meinem LG G2 oder auf dem S3 sind die Elemente nicht da, wo sie hinsollen, sondern alles ist komplett verschoben. Ich komm einfach nicht zurecht mit der Oberfläche meiner App. Ich habe auch die "Support different Screen Sizes" in Android durch.

Kann mir jemand helfen? Wäre echt nett...

grüße Fabian!

— geändert am 27.09.2014, 02:04:42

Antworten
Ludy
  • Admin
  • Forum-Beiträge: 7.958

27.09.2014, 12:28:50 via App

Fabian

Hey Community,

ich entwickel gerade eine stinknormale App mit einem Hintergrund und ein paar Elementen im Layout. Jetzt hat mir mein Grafiker das ganze in 1080 * 1920 mit 320 dpi gezeichnet. Wenn man jetzt einen dieser Elemente in den Hintergrund setzt (auf dem Desktop) passt alles perfekt. Setze ich das ganze jetzt aber in den "drawable" Ordner, werden die Elemente vergrößert und der Hintergrund gestaucht. Woran liegt das jetzt? Ich habe das ganze mal testweise in den "xxhdpi" Ordner gesteckt. Nun sieht es auf dem layout Manager mit dem Nexus 5 (1080 * 1920) xxhdpi sehr gut aus. Teste ich jetzt allerdings auf meinem LG G2 oder auf dem S3 sind die Elemente nicht da, wo sie hinsollen, sondern alles ist komplett verschoben. Ich komm einfach nicht zurecht mit der Oberfläche meiner App. Ich habe auch die "Support different Screen Sizes" in Android durch.

Kann mir jemand helfen? Wäre echt nett...

grüße Fabian!

wenn nur ein Grafik hast wird das von Android so angepasst du musst halt für jede Auflösung nen eigene Grafik haben.

Schau in die doc http://developer.android.com/guide/practices/screens_support.html

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

☕ Buy Me A Coffee ☕

Lebensmittelwarnung-App

✨Meine Wunschliste✨

📲Telegram NextPit News📲

Antworten
Fabian
  • Forum-Beiträge: 144

27.09.2014, 14:28:11 via Website

Hey Ludy,

genau diese Seite habe ich mir bereits durchgelesen. Schlauer wurde ich nur bedingt durch diese Lektüre.
Ich frage mich aber immer noch, bei LibGDX(Game Engine) sage ich der Engine, ich designe jetzt einen 720 * 1280 Screen und das soll auf jedem Gerät gleich aussehen. Nun außer, dass bei großen Geräten diese Grafiken ein kleines bisschen unscharf werden, bin ich absolut zufrieden damit.

  1. Angenommen wir haben einen Hintergrund entworfen, welcher 1080px * 1920px groß ist. In welchen Ordner muss dieses Bild? Die DPI dieses Bildes ist ja auf unterschiedlich großen Geräten unterschiedlich groß.

  2. So, jetzt habe ich noch Buttons entworfen, welche genau auf den Hintergrund passen müssen, in welchen Ordner müssen diese um auf jedem Gerät das gleiche Bild darzustellen? Die Buttons müssen ja auf jedem Gerät genau passen und dürfen nicht verschoben sein.

Grüße Fabian!

Antworten
Fabian
  • Forum-Beiträge: 144

29.09.2014, 16:31:56 via Website

Hey Ludy,
ich habe mir lediglich die Beschreibung der 9-Patches durchgelesen. Finde aber, dass das überhaupt nicht meine Baustelle ist. Ich poste mal ein Beispiel:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RelativeLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

<ImageView
    android:id="@+id/ImageView1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:adjustViewBounds="true"
    android:background="@drawable/background" />

<ImageButton
    android:id="@+id/ImageButton1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:adjustViewBounds="true"
    android:layout_marginBottom="194dp"
    android:background="@drawable/button" />

</RelativeLayout>

Dabei soll der Button genau auf eine im Hintergrund vorgegebene Fläche passen.
Markiere ich jetzt im Layout-Manager unter Geräte "Preview all screen" werden mir 11 verschiedene Auflösungen anzeigt. Auf 8 dieser 11 Geräten ist der Button teilweise um bis zu 20% verschoben. Also habe ich 3 Geräte. auf denen es mehr oder weniger passt. Da frage ich mich doch, wozu ist der Layout-Manager eigentlich da, wenn man trotzdem für jede Dichte und jede Größe ein neues Layout machen muss?
Gestern Abend habe ich das ganze mal per Code gemacht und habe in einem switch-statement alle verschiedenen Bildschirmdichten die Pixelanzahl mit der Dichte multipliziert. Das Ergebnis war, dass es auf meinem S3, G2 perfekt ausgesehen hat. Habe ich das aber auf dem S3-mini getestet, war wieder alles total verschoben...

Was mache ich falsch?

grüße Fabian!

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

29.09.2014, 16:52:35 via Website

Hallo Fabian,
ich denke mal, dass es daran liegt, dass du die Margin des Buttons fest setzt:

  android:layout_marginBottom="194dp"

Es kann nur überall gleich funktionieren, wenn dieser Wert prozentual zu allen Displays ist, sonst ist der Button auf einem 4Zoll Gerät ja genau gleich Weit vom unterem Rand entfernt wie be einem 6Zoll (oder mehr) Gerät.

LG Pascal

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Fabian
  • Forum-Beiträge: 144

29.09.2014, 17:44:07 via Website

Hab es gerade mit der dimens.xml ausprobiert, und für small, normal, large und xlarge die Werte mit 0,75, 1, 1,5 und 2 multipliziert. Gleiches Ergebnis :(

Denke aber das könnte jetzt an dem Hintergrund liegen, denn die Buttons sind jetzt prozentual richtig(geschätzt)... Kann man das Hintergrundbild auf jedem Screen gleich anzeigen lassen? Also praktisch so, dass es in der Höhe und Breite gleichermaßen multipliziert wird, bis die max Höhe ODER Breite erreicht ist?

Der Hintergrund ist auch leider auf manchen Bildschirmen etwas gequetscht. Wir haben den Hintergrund jetzt mit 480 mal 800 in den mdpi Ordner gepackt und das ganze quetscht und stretscht natürlich auf einem 480 mal 854 Bildschirm. Wie umgeht man das?

grüße Fabian!

— geändert am 29.09.2014, 17:58:05

Antworten