Auflösungsunabhängigkeit entwickeln

  • Antworten:8
J.S.
  • Forum-Beiträge: 110

28.04.2014, 13:18:35 via Website

Hallo,

ich kapiere noch nicht so wirklich, wie man es hinbekommt, dass meine App auf allen Smartphones gleich aussieht. Jetzt ist es noch so, dass bspw Schaltflächen in meiner App auf einem Tablet viel kleiner sind als auf einem Nexus4-Smartphone. Oder dass Schaltflächen und Images auf unterschiedlichen Geräten unterschiedlich verschoben sind. Dass also die Proportionen der App nicht auf jedem Gerät gleich sind. Das sieht sehr schlecht aus teilweise .Dabei möchte ich, dass die App auf möglichst vielen Geräten läuft und sich dem entsprechenden Gerät anpasst, sodass die App immer gleich aussieht von den Proportionen her etc. Wie bekommt man das hin?

VG J.S.

— geändert am 28.04.2014, 13:30:49

Antworten
impjor
  • Forum-Beiträge: 1.793

28.04.2014, 15:23:11 via App

Dass Schaltflächen kleiner sind, liegt wahrscheinlich daran, dass du Größen wie px verwendest, statt dp/dip.
Generell wirst du es aber nicht schaffen, dass die Anzeige lediglich hochskaliert wird. Stattdessen kannst du mit Mitteln wie den verschiedenen Layouts, android:weight und wie gesagt dp dein Layout so aufbauen, dass es auf allen Geräten gut aussieht.
Vielleicht ist es auch eine Überlegung wert, für Tablets eigene Layouts zu entwerfen (anderer Layout-Ordner).

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

Antworten
J.S.
  • Forum-Beiträge: 110

05.05.2014, 15:43:47 via Website

Nein, ich nutze immer dp. Trotzdem sind eingefügte Buttons auf dem 10,1*WXGA(Tablet) oder dem Nexus 10 bspw viel kleiner als auf einem Nexus 4. Oder auf einem 3,2" HVGA Slider (ADP1) oder Nexus 1 viel größer als auf dem Nexus 4...

[[cite impjor]]
Generell wirst du es aber nicht schaffen, dass die Anzeige lediglich hochskaliert wird. Stattdessen kannst du mit Mitteln wie den verschiedenen Layouts, android:weight und wie gesagt dp dein Layout so aufbauen, dass es auf allen Geräten gut aussieht.

Muss ich dann für jedes Gerät eine extra App machen sozusagen oder wie meinst du das genau?

VG
J.S.

Antworten
impjor
  • Forum-Beiträge: 1.793

05.05.2014, 22:10:06 via App

Was genau meinst du mit "groß"? Größe messbar in cm/Zoll oder Größe im Sinne von Pixeln oder Größe im Sinne von prozentuale Größe (nimmt immer 50% des Bildschirms ein)?

Welche davon soll konstant sein?

Ich gehe davon aus, dass es sehr oft Sinn macht, die prozentuale Größe auf allen Geräten gleich ist.

Meint: Zwei Buttons nebeneinander, beide 50% des Bildschirm breit. Egal ob auf 3" Smartphone oder 10" Tablet.
Das erreichst du durch weight.

Gleichzeitig kann es aber auch sehr sinnvoll sein, für größere Geräte oder Quer-/Hochformat verschieden Layouts zu erstellen bzw. besser Fragments zu benutzen.

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

Antworten
J.S.
  • Forum-Beiträge: 110

06.05.2014, 11:13:01 via Website

Ich habe mal einen Screenshot angehängt. Da sieht man, dass der Abstand zwischen "Eclipse" und dem Button bei dem 10,1" WXGA Tablet bspw viel größer ist. Dabei möchte ich, dass die App auf allen Geräten gleich aussieht...

image

Antworten
Daniel
  • Forum-Beiträge: 99

07.05.2014, 01:30:33 via App

Das habe ich heute den ganzen Tag gegooglet und überlegt. Man kommt nicht drum und muss für riesige screensizes wie xlarge nen eigenen layoutordner anlegen. layout-xlarge in dem fall. könnte man aber nicht theoretisch mit prozent werten arbeiten z.B. ich mach mal ne pseudemethode :D screen.getheight () und dann für Position des textviews nen prozentwert mit der height dafür eintragen?

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

07.05.2014, 05:12:12 via App

Du könntest nach der Screengröße die Größe aller Elemente auf dem Layout verändern aber ob das von voreil ist..

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

Antworten
J.S.
  • Forum-Beiträge: 110

08.05.2014, 11:20:51 via Website

Ich lege jetzt einfach neue Layout-Ordner an...iwie kann ich den Code hier nicht richtig posten?!

— geändert am 08.05.2014, 11:23:00

Antworten