Buttons auf allen Geräten im gleichen Verhältnis darstellen?

  • 10 Antworten
  • Letztes Antwortdatum
F

Ford

Fortgeschrittenes Mitglied
4
Hey,

ich möchte einen simplen Taschenrechner programmieren.

Damit das Design gut aus sieht möchte ich, dass es auf allen Geräten einheitlich aussieht.


Ich habe mit LinearLayout und dp gearbeitet.

Und habe dieses das Nexus One als "Testgerät" genommen.

Auf diesem sieht es so aus:

http://ringzero.de/android/2015-03-10-002759_1128x1063_scrot.png

Wenn ich jetzt zum Nexus 5 wechsle, dann passen die Skalierungen nicht.

Also die Checkbox ist größer geworden und die Buttons kleiner:

http://ringzero.de/android/2015-03-10-002934_1128x1063_scrot.png


Wie muss ich es einstellen, dass das Verhältnis gleich bleibt.

Muss ich da iwie mit Prozent arbeiten?


Vielen Dank im Voraus
Grüße Ford :)
 
Mmmh wenn du mit dip arbeitest dann müsste das doch eigentlich klappen

Der ursprüngliche Beitrag von 00:49 Uhr wurde um 00:51 Uhr ergänzt:

Posted mal deine xmls und dein Code

Der ursprüngliche Beitrag von 00:51 Uhr wurde um 00:53 Uhr ergänzt:

Ansonsten kann man den Buttons ja programmatisch dann mit Prozent arbeiten

Vllt versucht er ja deine Buttons im richtigen Verhältnis zu skalieren damit keine Verzerrungen auftreten muss mir mal die Hardware der Displays angucken
 
Nen code hab ich noch nicht.

Hier meine xmls.

Postet diese bitte nicht hier, da ich für die Schule eine Projektarbeit machen muss und diese verwenden möchte.

Wenn man diese hier nun postet oder ohne time-expires könnte es sein, dass mein Lehrer denkt, dass ich alles einfach kopiert hab obwohl ich es ja selbst geschrieben habe....


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" an - Pastebin.com


Vielen Dank
Grüße Ford. :)
 
Ah ja das aspect ratio von nexus one ( breite/höhe)
Ist 0.6(480:800) wobei beim nexus 5 ist es 0.56...(1080/1920)
Hatte schon einen thread darüber hier
wenn die breite sich der Höhe annähert werden die Buttons halt länger in der Höhe damit sie ihre quadratische Form bei behalten
das heisst bei dir ist genau der umgekehrte Fall die breite hat sich etwas entfernt von der Höhe das Display des nexus 5 ist von den Pixeln her länger als beim nexus one deswegen sind die Buttons relativ zur Höhe gesehen kleiner nehmen sagen wir mal statt 6% jetzt nur noch 5.6 Prozent der Display Höhe ein....

Hoffe du verstehst was ich meine

Ansonsten guck dir mein Beitrag vor einigen Tagen an (mein Profil -> statistiken-> themen)

Der ursprüngliche Beitrag von 01:05 Uhr wurde um 01:10 Uhr ergänzt:

https://www.android-hilfe.de/forum/android-app-entwicklung.9/apps-fuer-tablets-anpassen.667450.html
 
Okay, danke. :)


Würdest du da was ändern oder so lassen.


Ich mein leserlich ist es ja, aber ob es jetzt soo professionell ist, wenn ich es so lasse bezweifle ich. :/


Deshalb würd ich dazu noch gerne ne Meinung hören. :)
 
Ist eigentlich OK so aber vllt würde ich lieber ein relative Layout benutzen mit kleinem Abstand zwischen den Buttons und so
und dann auch wirklich nur eines
 
Danke. :)

Aber iwie bekomm ich da nicht hin, dass die wo sich alle in einer Zeile befinden automatisch die ganze Zeile ausfüllen sollen und alle gleich breit sind.

Wenn ich "android:layout_width="match_parent"" schreibe, dann überlappen die sich ja.
 
Ja klar du musst die Layout Parameter angeben zum beispiel ist ja die 5 links von der 6 oder rechts von 4 und unterhalb von 2 oder oberhalb von 8

Hier mal das Google tut --->Relative Layout | Android Developers

Der ursprüngliche Beitrag von 02:28 Uhr wurde um 02:30 Uhr ergänzt:

das relativ Layout eignet sich für dein Taschenrechner am besten imho dann nur noch jedem ein padding geben damit Abstand zwischen den Elementen gegeben ist und (ich könnte mich täuschen arbeite sonst nicht mit Layout Parametern und XML allgemein) wrap content benutzen oder weight bei allen auf eine gleiche zahl stellen damit diese auch den platz ausfüllen
Vielleicht aber wäre für die Buttons ein gridlayout angebracht eingebettet in ein relative layout


Der ursprüngliche Beitrag von 02:30 Uhr wurde um 02:38 Uhr ergänzt:

Also ich erzähle wohl etwas Mist hier bleib bei deinem Layout style da es ja funkt und lass dir nichts von mir einreden :3
 
Zuletzt bearbeitet:
@Kardroid: so wäre jetzt auch meine Herangehensweise gewesen, aber durch die "relative Gewichtung" benötigt das System ja 2^n mal mehr Rechnungen pro neue Hierarchie-ebene um die Ui darzustellen - je nach dem wie umfangreich der Rechner wird, kommt da (unter Umständen) was zusammen... Jedenfalls ist das die Meinung so manchen Gurus auf SO. Ich selbst bin mir selbst nicht sicher "ab wann" linear-layouts zum Problem werden,bzw ob das zu Zeiten von snapdragon 800 und adreno GPU überhaupt noch ins Gewicht fällt. Andere Idee wäre noch ein grid-layout.

Btw: mittels der Ressourcen-ordner (hdpi, xhdpi usw...) lassen sich auch sehr feinabgestimmte Layouts darstellen.

Sorry für den unleserlichen Beitrag, mobil gepostet. :p
 
Hatte bis jetzt noch nie Probleme mit der "Gewichtung" bei LinearLayouts. Es ist mit Abstand die einfachste Lösung.

Wenn das Problem wird, kann man immer noch eine andere Lösung suchen.
 
  • Danke
Reaktionen: missspelled
Zurück
Oben Unten