Textbreite (textsize) an Bildschirmgröße anpassen

  • Antworten:7
  • OffenNicht stickyNicht beantwortet
  • Forum-Beiträge: 36

15.02.2015, 17:33:54 via Website

Hi :)

wie kann ich das am Besten bewerkstelligen, dass die Textzeile bei kleinen Bildschirmen (Handy)
trotzdem noch zu sehen ist. Beim Tablet ist die Zeile lang genug.

Gibt's da irgendwas oder muss ich verschiedene Layouts anlegen?

Antworten
  • Forum-Beiträge: 36

15.02.2015, 17:43:34 via Website

Really ??!! :D dachte es wäre genau umgekehrt, dp wäre das unabhängige
na wieder was gelernt - da schau ich gleich mal nach

Edit: nee Pech gehabt - da hab ich schon sp eingetragen, also leider nützt das erst ma nix

Das Problem ist, das Textfeld ist dynamisch sozusagen, d.h. enthält unterschiedlichen Text
der unterschiedlich lang ist - ist zwar zentriert aber manchmal doch zu lang

Vielleicht gibt's ja irgendwie ScreenSize mit der man was berechnen kann?

— geändert am 15.02.2015, 17:47:51

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

15.02.2015, 17:49:56 via Website

Ist der Text ist auf allen Displays zu lang?
Oder nur auf manchen?
Wenn das nur auf machen so ist, dann musst du per Code nach display größe unterscheiden und dann deine Schrift kleiner machen.
Das problem ist nur: daraus folgt: Je kleiner das Display desto kleiner die Schrift.
Das kann bei kleinen Handys doch scnhell mal unlesbar werden, wenn du da keine einschränkung einbaust.

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

Antworten
  • Forum-Beiträge: 1.904

15.02.2015, 19:20:51 via App

Normalerweise ist das nicht gewollt. Es gibt sp und dp, damit auf einen größeren Bildschirm mehr passt als auf einen kleineren. Das ist ja der Sinn eines größeren Displays 😏

Zu deinem Problem. Du könntest einfach den Text unterbrechen lassen.
Ansonsten kenne ich da noch eine Library. Ich suche mal gerade den Namen.

Edit: Okay, die lib gibts nicht mehr 😂. Kurz geooglet, habe das gefunden: https://github.com/grantland/android-autofittextview
http://stackoverflow.com/a/5535672

— geändert am 15.02.2015, 19:25:40

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
  • Forum-Beiträge: 36

15.02.2015, 20:02:24 via Website

Okeee, da denke ich dann doch lieber über verschieden layouts zu verschiedenen größen nach naja zumindest klein / normal

Antworten
  • Forum-Beiträge: 94

18.02.2015, 09:23:49 via Website

Was auf jedenfall sinn machen kann ist ein 2. Layout für Tablets. So kannst du für die großen Displays dann zb die Auswahl und das Ergebnis auf einen Screen legen.

Antworten
  • Forum-Beiträge: 156

19.02.2015, 15:33:23 via Website

Du kannst mit View.getWidth()ermitteln wie viele Pixel breit die View ist in die Du den Text ausgibst. Wenn Du die gesamte Display-Breite nutzt, kannst Du die Breite auch wie folgt ermitteln:

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;

Jetzt kannst Du mit der Funktion android.graphics.Paint.measureText(String txt)ermitteln wieviele Pixel breit Dein Text bei der Ausgabe wird. Liegt dieser Wert über der ermittelten Bildschirm bzw. View-Breite kannst Du dann entweder die Schriftgröße solange verkleinern bis sie so klein ist, dass der Text in die View passt, oder den Text in mehrere Zeilen umbrechen.

Antworten

Empfohlene Artikel