Layout ist nicht proportional, das Schöne : es ist eigentlich das richtige Layout!

  • Antworten:17
  • OffenNicht stickyNicht beantwortet
  • Forum-Beiträge: 99

07.05.2014, 21:18:25 via Website

Moin Androiden und Androidinnen :D,

meine App hat ein Layout, das Relative Layout mit Proportionen.

Es wird auf meinem Nexus 5 HERVORRAGEND dargestellt,
aber auf dem Sony Xperia E was ne deutliche geringere Auflösung und Screengröße hat halt
unproportional und HÄSSLICH.

Ich hab mit layout-large, layout-small , layout-schlagmichtot gearbeitet, und jetzt entdeckt: Android
zählt BEIDE handys zur Klasse "normal layout" und verwendet für beide das gleiche normal layout, was kann ich da tun, dass es trotzdem proportional ist?

— geändert am 07.05.2014, 21:19:04

Antworten
  • Forum-Beiträge: 222

08.05.2014, 07:30:18 via Website

Hallo Daniel, (SORRY!)
ich (nur my- Spekulation) es wird Dir keiner Antworten, weil das Thema wurde hier schon 100000 mal angesprochen. Und die Layout- Fragen wiederholen sich hier ständig!
Lese Dich in die Materie rein,
- Suche im Forum
- Suche im Net -> 1000...000 Seiten zu diesen Thema
- ....
und erst wenn Du ein Konkretes Anlass (Problem) haben würdest, konkretisiere bitte Dein Problem hier, und Dir wird bestimmt geantwortet!

LG
Georg

— geändert am 08.05.2014, 07:30:49

Sorry für Gramatik & Stilistik Fehler.

Antworten
  • Forum-Beiträge: 99

08.05.2014, 16:55:05 via Website

Hallo Georg,
sorry aber ich suche stundenlang im Inet und finde keine optimale Lösung, hab mir sogar alle threads die mit layout zu tun haben extra gegeben :D

Zur Konkretisierung :

Die Spaces zwischen den Buttons variiert seeehr stark bei nem 3,2" bildschirm und nem fast 5 zoller eines nexus 5.

aber wie gesagt! die app zählt das nexus 5 zum "normal" layout, weswegen ich nicht verschiedene layouts anfertigen kann....
DAS ist das problem ^^

MfG

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.177

08.05.2014, 17:39:31 via Website

Dann hilft nur noch den Abstand im Code setzen und berechnen lassen

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

Antworten
  • Forum-Beiträge: 99

08.05.2014, 18:48:46 via Website

Hab ich mir auch gedacht, das ist aber so mega viel Arbeit, es codetechnisch zu machen :D muss ich wohl leider machen ^^

Ich hätte mir vorgestellt, zb. getHeight() und dann mal *0.7 und position so festlegen, falls es möglich ist, oder gibts es wie immer iwelche coolen tricks/algorithmen für sowas ? :D

Antworten
  • Forum-Beiträge: 1.793

08.05.2014, 19:55:40 via App

Die Frage ist, ob es die Mühe überhaupt Wert ist.

Durch weigth kann man "Größen in Prozent" angeben, mit mehreren Layouts kann man Views auch sehr gut ausrichten; eine echte Hilfe hierfür ist auch das RelativeLayout.

Ein Layout kann (und sollte) nie auf allen Geräten exakt gleich aussehen: Allein da die meisten Geräte unterschiedliche Verhältnisse von Breite/Höhe haben, macht das keinen Sinn.

Und ganz wichtig: Layout - Größen im Code zu setzten ist wirklich wirklich wirklich keine gute Idee... Layouts sind genau dafür da, dass man das nicht machen muss!

Edit: Zu deinem getHeight() * 0.7:
Einfach die height der View auf 0dp setzen und weigth auf 0.7... schwupps ist es 70% groß.

— geändert am 08.05.2014, 19:57:37

Liebe Grüße impjor.

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

Mac Systems

Antworten
  • Forum-Beiträge: 1.525

08.05.2014, 19:59:18 via Website

impjor

Die Frage ist, ob es die Mühe überhaupt Wert ist.

Durch weigth kann man "Größen in Prozent" angeben, mit mehreren Layouts kann man Views auch sehr gut ausrichten; eine echte Hilfe hierfür ist auch das RelativeLayout.

Ein Layout kann (und sollte) nie auf allen Geräten exakt gleich aussehen: Allein da die meisten Geräte unterschiedliche Verhältnisse von Breite/Höhe haben, macht das keinen Sinn.

Und ganz wichtig: Layout - Größen im Code zu setzten ist wirklich wirklich wirklich keine gute Idee... Layouts sind genau dafür da, dass man das nicht machen muss!

Edit: Zu deinem getHeight() * 0.7:
Einfach die height der View auf 0dp setzen und weigth auf 0.7... schwupps ist es 70% groß.

Da gebe ich dir recht.

Ich würde das RelativeLayout nutzen.
Benutze das eigentlich fast nur und bin bis heute damit zufrieden.

LG

— geändert am 08.05.2014, 20:01:36

Antworten
  • Forum-Beiträge: 99

08.05.2014, 20:56:52 via Website

@impjor

ich werde dann versuchen weiterhin iwie mit umwegen xml zu benutzen :D
aber ich meine ich will die position so bestimmen, dass der button nicht 30 % groß ist , sondern
auf auf der höhe 30% des displays bsp :

|´´´´´´´´| ↑
|´´´´´´´´| ↓ der button soll halt auf 70% der höhe des displays sein
|´´´´´´´´|
|´´´´´´´´|

@Michele
ja, ich mag das RelativeLayout auch sehr, aber wenn das gleiche layout in meinem fall
auf riesen handys wie nexus 5 oder kleinen handys wie xperia e verwendet wird,
ist alles zusammengestaucht praktisch wie auf einem haufen,
ich vermute, dass die dp zahl im verhältnis zur physischen displaygröße bei kleinen displays ja größer ist
als wenns auf nem großen nexus 5 gezeigt wird

Ich probiere gerade LinearLayout und weights, aber wer noch Ideen und Anregungen hat oder das problem kennt,
auf neue antworten freue ich mich ^^

Antworten
  • Forum-Beiträge: 1.954

08.05.2014, 21:41:45 via App

momomoment. ich glaube das problem liegt nicht so tiefgreifend.
Oder wurde hier schon genannt, dass es in den einstellungen einen punkt gibt mit layout anpassen. Oft wird dann falsch verzerrt. ich glaube das ist der uhrsprung.

Wenn ich ein Psychiater hätte, müsste dieser dann auch zum Psychiater, der Psychiater von diesem Psychiater auch wieder zum Psychiater und dieser Psychiater dann in die Klappsmühle

Antworten
  • Forum-Beiträge: 99

08.05.2014, 22:28:34 via Website

Silvan H.

momomoment. ich glaube das problem liegt nicht so tiefgreifend.
Oder wurde hier schon genannt, dass es in den einstellungen einen punkt gibt mit layout anpassen. Oft wird dann falsch verzerrt. ich glaube das ist der uhrsprung.

was meinste ? erzähl pls mehr ^^

Antworten
  • Forum-Beiträge: 99

08.05.2014, 22:29:26 via Website

impjor

Wie gesagt, benutze weigth:

<LinearLayout
     orientation:vertical>
        <Space
             weigth:0.7 />
        <Button />
   </LinearLayout>

Natürlich ist das syntaktisch nicht korrekt, sollte das Prinzip aber erklären.

Dein Code wird iwie bullshit dargestellt also hier im forum :D

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.177

08.05.2014, 22:48:17 via App

Wissen wir.
Ist auch schon von mir gemldet.
Vlt kommt es mit dem nächsten Forumupdate und dann ists hoffentlich besser.

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

Antworten
  • Forum-Beiträge: 1.954

09.05.2014, 12:58:37 via App

Daniel

Silvan H.

momomoment. ich glaube das problem liegt nicht so tiefgreifend.
Oder wurde hier schon genannt, dass es in den einstellungen einen punkt gibt mit layout anpassen. Oft wird dann falsch verzerrt. ich glaube das ist der uhrsprung.

was meinste ? erzähl pls mehr ^^

ich hoffe das es diese option auch unter der sony UI gibt ...
auf jeden fall must du in den einstellungen nachschauen. bei den entwickler einstellungen.
bei meinem optimus G ist es jedoch unter homescreen. beim samsung galaxy tab 2 finde ich dazu nix, könnte auch sein, dass es ein LG feature ist.

— geändert am 09.05.2014, 12:59:44

Wenn ich ein Psychiater hätte, müsste dieser dann auch zum Psychiater, der Psychiater von diesem Psychiater auch wieder zum Psychiater und dieser Psychiater dann in die Klappsmühle

Antworten
  • Forum-Beiträge: 1.793

09.05.2014, 13:43:49 via App

Silvan H.

ich hoffe das es diese option auch unter der sony UI gibt ...
auf jeden fall must du in den einstellungen nachschauen. bei den entwickler einstellungen.
bei meinem optimus G ist es jedoch unter homescreen. beim samsung galaxy tab 2 finde ich dazu nix, könnte auch sein, dass es ein LG feature ist.

Es geht um das Entwickeln einer App, nicht um irgendwelche Einstellungen irgendeines Gerätes....

Liebe Grüße impjor.

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

Antworten
  • Forum-Beiträge: 1.954

10.05.2014, 11:54:47 via App

Es geht um das Entwickeln einer App, nicht um irgendwelche Einstellungen irgendeines Gerätes...

das war auch nicht der sinn meiner aussage. es könnte schliesslich sein, das er diese option bei seinem sony aktiviert hat und deswegen das layout jetz anders dargestellt wird.

— geändert am 10.05.2014, 11:55:00

Wenn ich ein Psychiater hätte, müsste dieser dann auch zum Psychiater, der Psychiater von diesem Psychiater auch wieder zum Psychiater und dieser Psychiater dann in die Klappsmühle

Antworten
  • Forum-Beiträge: 99

10.05.2014, 14:42:53 via Website

Silvan H.

Es geht um das Entwickeln einer App, nicht um irgendwelche Einstellungen irgendeines Gerätes...

das war auch nicht der sinn meiner aussage. es könnte schliesslich sein, das er diese option bei seinem sony aktiviert hat und deswegen das layout jetz anders dargestellt wird.

kannste mir ein stichwort zu sagen , oder den punkt wo der genau ist ? :P hattn kumpel das handy und der wohnt weiter weg :D

Antworten
  • Forum-Beiträge: 99

11.05.2014, 00:56:19 via Website

Jo schönen Abend bzw Nacht:D ,
@impjor unter anderem,
ich habe es mit LinearLayout hinbekommen.
Bzw mit einer LinearLayout-ception

Linearlayout in einem Linearlayout in indem Hauptlinearlayout :D

Mit weights drum und dran, es sieht jetzt perfekt aus auf allen Telefonen, aber
ist laut dem SDK nicht performant "Nested weights are bad for performance".

Und die Textgröße will ich so groß haben, dass sie möglichst viel einnimt vom Screen.
Nach tausend Stunden googlen bin ich auf dimensions gekommen, dachte nie, dass die so praktisch sind, aber
überall unterschätzt:P

Werde es nun mit denen nochmal probieren, weil ich doch ein einfaches RelativeLayout gerne haben würde,
und nicht son inperformantes, mega verschachteltes LinearLayout ^^

Antworten

Empfohlene Artikel