The big start

T

TommyB83

Neues Mitglied
0
Heyho,

frisch neu hier und gleich eine Beginner-Frage *Asche auf mein Haupt*

Kurz gesagt, Programmierkenntnisse sind vorhanden, sogar jahrelange. Aber halt für PC in VB.Net und n bissl C#. Dies ist mein erstes Projekt in Android / Java. Vom Prinzip ist es sich ja doch recht ähnlich, nur manche Begriffe sind unterschiedlich (was den Quelltext angeht).

Auf jeden Fall möchte ich nun eine Software die ich für den PC geschrieben habe zu Android portieren. Quellcode-mäßig sollte es keine allzu großen Probleme geben, aber mit dem Design der Form (also Activity?) hapert es grade etwas.

Kurze Beschreibung der Form:
Links oben sitzt ein Control (fixe Breite und Höhe in px) was selbst gezeichnet wird.
Darunter sitzen mehrere Labels, also Textelemente.
Der linke Bereich hat immer eine feste Breite (in px).
Rechts oben wieder ein Control (frei skalierbar) was sich selbst zeichnet
Rechts unten eine ListView (auch frei skalierbar).
Rechts oben und unten ist durch ein SplitPanel variabel.

Also so schauts auf dem PC aus:
MZlLa33mOs6Dwwt7-and.png


Ungefähr so sollte es auch auf Android aussehen.
Jetzt ist nur die Frage wie am Besten umsetzen und was für Controls dafür nutzen? Vor allem weils ja auch verschiedene Auflösungen und Ausrichtungen gibt...

Danke schonmal :)
 
Das genau so umzusetzen wird schwierig, gerade weil es so viele verschieden Auflösungen gibt.
Was schon mal gar nicht geht sind feste Pixel.

Beispiel 2 Geräte:
Eines hat 1920x1080 Pixel
Das andere 800x600

Wenn du da jetzt was 600Pixel breit machst, hast du bei dem 1. noch 480 Pixel daneben frei, beim anderen nichts mehr.

Dein Layout funktioniert sowieso nur auf einem Android phone, wenn es im Querformat liegt.

Du solltest dir überlegen ob du es nicht evtl ganz anders umsetzen möchtest.

Lies dich mal hier ein:
Supporting Multiple Screens | Android Developers
Design | Android Developers
Supporting Tablets and Handsets | Android Developers

Evtl. kommst du zu dem Schluss, dass du 2 verschiedene Screens machen musst, oder aber das du beide Dinger untereinander darstellen musst etc.
Da musst du dir dann Gedanken drum machen.
 
amfa schrieb:
Wenn du da jetzt was 600Pixel breit machst, hast du bei dem 1. noch 480 Pixel daneben frei, beim anderen nichts mehr.

Ne das stimmt nicht so ganz, da hast du mich vielleicht etwas falsch verstanden. Nur der linke Bereich mit dem LCD ist nach Pixel, der Rest passt sich (unter Windows) der Form an. Als Beispiel (hier mal Vollbild, Screenshot verkleinert):
EYIXuK1Js6HaIMqK-.png


Habe das sogar schon einigermaßen umgesetzt bekommen, zumindest für Tablets im Landscape Mode. Les mich grade noch durch die Links von dir durch.


Ich finde kein ListView-ähnliches Control unter Android :(
Also wie das auf dem Screenshot unten rechts. Da werden die Messungen angezeigt wie in einem Log Fenster, das Neuste immer unten, incl. Auto-Scroll.
 
Ich glaube das war amfa klar..
Das Problem sind immer noch die festen Pixel deiner eigenen Komponente...
und er hat das auch darauf bezogen, wenn deine Komponente 600px benötigt, ist für den Rest auf dem einem Gerät noch Platz, auf einem anderen nicht mehr...

lg. Dagobert
 
Aso, ok, aber das sind nur 250px incl. Rand
 
ja 250px können auf nem 400x320 Gerät schon viel Platz weg nehmen ;)
Eigentlich bleiben dir 3 Möglickeiten:
1. Deine Komponente dynamisch machen
2. Das Layout zu ändern (Anordnung/Darstellung) <- Finde ich am Sinnvollsten
3. Erst Geräte ab einer gewissen größe Unterstüzten ...

lg. Dagobert
 
und 250px auf einem Full-HD 5 Zoll smartphone sind sehr klein.
Das Nexus 5 hat z.B. 445ppi, heißt auf ein Zoll kommen 445 Pixel.
Wenn du jetzt dein Bild 250px breit machst ist das ganz etwas mehr als ~1,3cm

Das dürfte zu klein sein um was zu erkennen.


Übrigens.. das "ListView-ähnliche" Control heißt unter Android... ListView
List View | Android Developers
Wird nur etwas anders befüllt aber das ist ziemlich genau das was du suchst.
 
Ich bin grade dabei das "LCD" von px auf pt umzustellen, denn sollte das Problem somit erledigt sein. Dauert nur etwas (alles wieder neu ausrichten, ...)

Ja das ListView habe ich auch gefunden. Allerdings in jedem Beispiel was ich gefunden habe wirkte das so klobig. Klar, Fingerfreundlichkeit und so, das ist in meinem Fall ja aber nicht benötigt. Es ist eine reine Anzeige der Messwerte, scrollbar. Und wenn ich das richtig verstanden habe muss das ListView bei jedem Update wieder komplett neu befüllt werden? Das würde bei 100.000 Einträgen natürlich nicht unbedingt performant sein...
Zur Not würde es auch eine Art ReadOnly TextBox tun. Hauptsache sie ist scrollbar und kommt mit vielen Einträgen klar.
 
Die List view ist schon performant genug wenn man das ganze Klever implementiert ;l

LG.

Gesendet von meinem GT-I9300 mit der Android-Hilfe.de App
 
Naja du kannst der ListView ja mit einem ArrayAdapter z.B. einfach ein Array mit deinen Werten übergeben und dort dann auch neue hinzufügen.

Der Vorteil der ListView ist, dass die die einzelnen Views wieder verwendet.
Wenn also beispielsweise 10 Listeneinträge gleichzeitig dargestellt werden, hast du auch nur 10 View Objekte.

Alternativ kannst du natürlich auch eine ScrollView bauen und dort per Hand immer wieder neue TextViews hinzufügen, nur das ist irgendwann nicht mehr performant wenn du da zu viele (Text)View Objekte hinzufügst.

Die ListView wird nämlich nicht neu befüllt, nur der einzelne Eintrage, der gerade sichtbar wird. Und was das "klobig" wirken angeht, das aussehen kannst du vollkommen frei definieren, du kannst als Listeneintrag ein komplett eigenes Layout definieren.
Theoretisch kannste ja komplette "Activity Layouts" für jeden Eintrag erstellen.
 

Ähnliche Themen

Laser5001
  • Laser5001
Antworten
2
Aufrufe
900
Laser5001
Laser5001
Hansimglueck0815
Antworten
0
Aufrufe
733
Hansimglueck0815
Hansimglueck0815
M
Antworten
2
Aufrufe
752
maksimilian
M
Zurück
Oben Unten