German Textscalierung für unterschiedliche Displays

mhc

Member
Licensed User
Longtime User
Hallo,

irgendwie komme ich nicht weiter.
In einer Anwendung benutze ich ein Label in Multitext. Angezeigt werden soll ein Text mit bestimmten Zeilen:
ABCDE
FGHIJK
LMNOP

Ich erreiche dies mit Label.width und mit Label.TextSize. Soweit OK. Funktioniert auf dem Samsung Galaxy und dem entsprechenden Emulator am PC auch einwandfrei.

Gehe ich damit auf ein Pad mit anderer Auflösung und Density, stimmt natürlich die Formatierung nicht mehr (auf dem Gerät und dem entsprechenden Emulator am PC). Der Text verschiebt sich.
Was ich jetzt nicht hinbringe, ist, dass ich die Labelbreite und die Schriftgröße nicht so kombinieren kann, dass eine einwandfreie Darstellung (Pad, Emulator) erfolgt. Entweder ist bei gegebener Schriftgröße der letzte Buchstabe nur teilweise zu sehen, oder - bei erhöhter Labelbreite (1 Pixel!) wird schon der nächste Buchstabe in der gleichen Zeile mitgeschrieben.
Oder das Ganze umgekehrt, wenn ich bei gegebener Labelbreite mit der Schriftgröße arbeite.
Wenn meine Anwendung nun auf verschiedenen Geräten laufen soll, kann ich - wie schon an anderer Stelle in diesem Forum beschrieben - über GetDeviceLayoutValues die Parameter des Displays auslesen. In Abhängigkeit der Werte kann ich auf korrespondierende Layouts schalten.
Aber ich bekomme das ja nicht einwandfrei hin:BangHead:

Was mache ich falsch? Wie kann ich eine App schreiben, in der der Text auf einem 143x370 px Label unabhängig vom verwendeten Gerät bzw. Display immer gleich formatiert bleibt?

Für Anregungen wäre ich dankbar.
 
D

Deleted member 103

Guest
Hallo Michael,

hast du schon probiert in jeder Zeile ein CRLF hinzuzufügen?
Dies würde zumindest jeden Text in eine Zeile zwingen.


Ciao,
Filippo
 

mhc

Member
Licensed User
Longtime User
Hallo Filippo,

Danke für die Antwort. Bin gerade im Moment darüber gestolpert, dass ich das Label auf einem Panel liegen habe. Beide mit gleicher Größe. Daher die halb abgeschnittenen Buchstaben. Vergrößere ich das Panel um einige Pixel, kann ich den Text richtig formatieren. Ich dachte immer, 2 Komponenten mit gleicher Höhe und Breite übereinandergelegt (mit Top=0 und Left=0) ergäben das gleiche Bild:confused:. Aber offensichtlich muß ich einen Rand berücksichtigen.
OK.
Dennoch suche ich immer noch eine Lösung, ohne mehrere Layouts erstellen zu müssen, dass sich das Layout dem jeweiligen Display anpasst. Insbesondere bei verschiedener Density.

Servus
 
Top