Textgröße in Button Schrittweise erhöhen

  • Antworten:9
  • Bentwortet
Gelöschter Account
  • Forum-Beiträge: 2.492

19.05.2015, 17:16:55 via Website

Hallo,

ich habe ein für mich sehr kurioses Problem.
Ich habe einen/mehrere Buttons mit z.B. der Textgröße 48 (Habe ich mit getTextSize() abgefragt).
Jetzt möchte ich z.B. nach Klick auf irgendeinen Button die Schriftgröße erhöhen auf 49.
Diesen Code habe ich bisher:

float size = btn.getTextSize();  //Hier ist size = 48
size++;                          //Hier ist size jetzt 49
btn.setTextSize(size);    //Danach ist btn.getTextSize() = 73,5

Warum ist nach dem btn.setTextSize(size), btn.getTextSize() = 73,5 und nicht = 49?
Geht das so gar nicht, oder was mache ich falsch?
Ich möchte ja nur, dass die Schriftgröße langsam wächst und nicht mit so einem großen Schritt.

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

19.05.2015, 20:01:24 via Website

http://developer.android.com/reference/android/widget/TextView.html#getTextSize() gibt den Wert auf Pixel bezogen zurück.
http://developer.android.com/reference/android/widget/TextView.html#setTextSize(float) setzt den Wert aber in Scaled Pixeln(sp).

Um auch in Pixeln zu setzen musst du wahrscheinlich bei http://developer.android.com/reference/android/widget/TextView.html#setTextSize(int, float) als Unit Pixel angeben. Allerdings würde sich dann auf jedem Gerät anders der Text vergrößern.

— geändert am 19.05.2015, 20:02:50

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
Georg C.
  • Forum-Beiträge: 235

20.05.2015, 11:29:10 via Website

Versuche bitte damit:

float size = btn.getTextSize(); //Hier ist size = 48

int_size_temp = (int) size;
int_size_temp +=1;
// int size = int_size_temp; // LASEN WIR!
// btn.setTextSize(size); ->
deshalb ->:

btn.setTextSize(int_size_temp);

soll eigentlich funzen. ....
LG
Georg

Sorry für Gramatik & Stilistik Fehler.

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

20.05.2015, 16:03:17 via App

Warum sollte das besser sein? Ob du ein int oder float plus eins rechnest ist egal.

— geändert am 20.05.2015, 16:03:25

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
Gelöschter Account
  • Forum-Beiträge: 2.492

20.05.2015, 16:55:08 via Website

Sven R.

Um auch in Pixeln zu setzen musst du wahrscheinlich bei [http://developer.android.com/reference/android/widget/TextView.html#setTextSize(int, float)][1] als Unit Pixel angeben. Allerdings würde sich dann auf jedem Gerät anders der Text vergrößern.

[1]: http://developer.android.com/reference/android/widget/TextView.html#setTextSize(int,%20float)

Danke das setzen als Pixel hat geholfen!

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

21.05.2015, 07:02:06 via App

Musst aber wie gesagt auf den verschiedenen Pixeldichten gucken, wie das aussieht.

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
Gelöschter Account
  • Forum-Beiträge: 2.492

21.05.2015, 07:32:48 via App

Ja das stimmt, aber sollte für meinen Fall kein Problem sein.

Antworten
Georg C.
  • Forum-Beiträge: 235

21.05.2015, 12:43:12 via Website

@Sven R.
abstrahierend vom Ludy seine Anmerkung;
ist float eine Fließkommazahl.
Da ich zu Faul war in die API zu schauen, aber aus Erfahrung ausgegangen bin;
-> geter & seter immer (Standard / default getTextSize() - setTextSize() ) einen Integer als ZAHL! erwarten, habe ich den Cast (in int Umwandlung) vorgeschlagen.
...

Aber es funz bei Lars alles - also alles OK.

LG
Georg

Sorry für Gramatik & Stilistik Fehler.

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

21.05.2015, 13:23:19 via App

@Georg: Meinst du das int für den Unit Type? Also in diesem fall Pixel?
Ist aber auch egal.

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