Layout nur für ein Smartphone Typ passend bei anderen zu groß bzw. zu klein

  • Antworten:7
Simon Teichmann
  • Forum-Beiträge: 1

03.12.2014, 13:40:28 via Website

Hi ich habe grade Angefangen Apps zu programmieren und habe direkt schon ein Problem.
Ich möchte ein App programmieren und sie möglicherweise auch veröffentlichen. Nur ist das Probelm, dass wenn ich ein layout gemacht habe es nur für eine Smartphone Typ gilt und bei anderen Smartphones etweder zu groß oder zu klein ist. Wie schaff ich es, dass das Layout auch bei weiteren Smartphone Typen passt?
Danke schon mal im voraus :)

— geändert am 03.12.2014, 13:56:04

Antworten
Klaus
  • Blogger
  • Forum-Beiträge: 19.172

03.12.2014, 13:43:14 via App

Hallo Simon!

Herzlich Willkommen hier bei uns im Forum.

Bitte beachte, dass Threads mit nicht aussagekräftigem Titel bei uns üblicherweise den Regeln entsprechend entfernt werden. Ich bitte dich daher, deinen Threadtitel bei deinem nächsten Besuch, spätestens aber innerhalb der nächsten 24 Stunden noch etwas aussagekräftiger zu gestalten (Hierfür einfach unter deinem ersten Beitrag auf "Bearbeiten" klicken, dann kannst du oben noch mal den Titel anpassen)

Danke :)

| LG Klaus |
| Google Nexus 6P - Dirty Unicorns | Google Nexus 6 - Dirty Unicorns |
| Das AndroidPITiden-Buch | Die Androiden-Toolbox | AndroidPIT-Regeln |

Antworten
Paul R.
  • Forum-Beiträge: 253

03.12.2014, 16:34:00 via App

ich musste dieses jahr bei meinem Praktikum eine unternehmenseigene App für ein Tablet anpassen da hatte ich so ein ähnliches Problem. Spiel mal bei der Layout xml bei height und width mit "match-parent" und "wrap-content" rum. bei mir hat es dann irgendwann funktioniert. die App sah dann bei Smartphones und Tablets gleich aus. ich hoffe das ich dir helfen konnte.
MfG Paul :)

PS: hier noch ein Link zur Layout API klick

— geändert am 03.12.2014, 16:36:27

Samsung Galaxy S4 mit Lollipop 5.0.1
Google Nexus 5 mit Lollipop 5.1.1
Apple iPod Touch 5G (32GB) mit iOS 8.4.1
Samsung Galaxy Tab S 10.5 mit Lollipop 5.0.2
//Nichts ist wahr, alles ist erlaubt\\

Antworten
Sven R.
  • Forum-Beiträge: 1.904

03.12.2014, 17:51:41 via App

Was meinst du mit gleich aussehen?

  • gleiche Größe?
  • nur gleiche Proportionen?

Früher habe ich mich gefragt, warum es dps gibt. Ich dachte, man skaliert einfach den kompletten Bildschirm auf die richtige Größe hoch. Aber nein.
Ein dp ist auf jedem Gerät gleich groß. Also kann es auf einem größeren Gerät mehr dps geben als auf einem kleineren. Somit können auch mehr Informationen auf dem größeren Gerät dargestellt werden.

Damit aber nicht alles komisch aussieht, kann man mit weights oder relativen Sachen arbeiten (RelativeLayout).

Ich weiß nicht, ob du das wissen wolltest, oder ob das dein Problem war.

Edit: Oh, MarkDown macht aus meiner Strichliste eine Punkteliste. 😎

— geändert am 03.12.2014, 17:56:09

Wenn dir mein Beitrag gefällt, kannst dich einfach mit dem 👍 "Danke"-Button auf der Website dieses Forums bedanken. 😀

Why Java? - Because I can't C#

Antworten
Heretsu
  • Forum-Beiträge: 37

03.12.2014, 20:09:21 via Website

Falls ich dich richtig verstanden habe, musst du mehrere Layout Ordner erstellen und da die XML Dateien anpassen.
Ich mache es so, dass ich jedes Layout 3 mal habe.
Einmal für normale Smartphones
Einmal für +5 Zöller
Und einmal für Tablets.
Guck dir am besten dieses Tutorial an: https://www.youtube.com/watch?v=OtsZbdbC370

MfG

Antworten
Sven R.
  • Forum-Beiträge: 1.904

03.12.2014, 20:43:45 via App

Ich weiß nicht was du mit zu groß oder zu klein meinst.

Wenn dir mein Beitrag gefällt, kannst dich einfach mit dem 👍 "Danke"-Button auf der Website dieses Forums bedanken. 😀

Why Java? - Because I can't C#

Antworten
Martin
  • Forum-Beiträge: 756

04.12.2014, 12:35:47 via App

Ich weiß schon was du meinst und kann dir diesen Link nahe legen :)
http://developer.android.com/guide/practices/screens_support.html

...außerdem nehme ich an, dass du das eh mit verschachtelten Containern löst...? Mit einem einzigen wirst du keine optimalen Ergebnisse erreichen können...

— geändert am 04.12.2014, 12:36:04

pepperonas

Antworten
pepperonas
  • Forum-Beiträge: 434

09.12.2014, 11:28:53 via Website

Sven R.

Ein dp ist auf jedem Gerät gleich groß. Also kann es auf einem größeren Gerät mehr dps geben als auf einem kleineren. Somit können auch mehr Informationen auf dem größeren Gerät dargestellt werden.

Hmm, ganz so einfach ist es leider nicht. Es ist immer nur eine Annäherung... So gesehen hast du schon recht, da in vielen Fällen diese Hochrechnung vollkommen ausreichend ist. Aber wenn es wirklich auf den Pixel genau sein muss, stößt man an physikalische /technische Grenzen.
Beiweis / Beispiel:
Bildschirm 1 hat 1000 x 1000 Pixel auf 10cm Höhe und 10cm Breite -> 1cm Länge werden durch 100 Pixel "repräsentiert" (geht wunderbar auf)
Bildschirm 2 hat 1000 x 1000 Pixel auf 13cm Höhe und 13cm Breite -> 76.923076923076923076923076923077 das geht leider nicht auf... Es gibt keine halben Pixel, deswegen wird man nie ein 100%tiges Ergebnis erhalten können.
Die verschiedenen Bildschirm-Seitenverhältnisse sind in diesem Beispiel jetzt außen vor gelassen - so gesehen kommt noch ein weiterer "Faktor" hinzu.

Ins Gewicht fällt kann dieses Phänomen dann, wenn man über die Berührung von Drawables Kollisionsabfragen durchführt oder einen Gegenstand über den Bildschirm "fahren" lässt, da hier die Geschwindigkeit davon abhängt wie viele Pixel bzw. welche Entfernung der Pixel aka "das Objekt" in der Zeit zurückgelegt hat..

Kurz: Für normale UI-Gestaltungen hast du mit deiner Aussage recht - problematisch wirds wenn es sich um ein Spiel oder eine andere grafisch aufwendige(re) Anwendung handelt.

Wie ich es verstanden habe, rechnet Android von Hause aus sowieso nur auf Faktor 0,75, 1, 1,25, 1,5 und 2 um (hdpi, mdpi, usw..) -> wem das zu ungenau ist kann über die ScreenDimensions sich selbst einen Skalierungsfaktor "erstellen". So bleiben die großen Überraschungen später aus :)

Open Source

Antworten