Sentenza
Erfahrenes Mitglied
- 83
Hallo,
Ich suche einen Weg wie man Text in einem Textview an die Größe des Displays anpassen kann. Gibts da irgendwas einfaches? Alles was ich bisher weiß, ist dass ich mit getWidth() die Breite auslesen kann (height natürlich entspr.), auf die Weise könnte ich das natürlich in ner Schleife lösen, aber selbst das funzt nicht richtig:
liefert mir leider immer die alte Länge, das heißt wenn ich zweimal auf meinen Button klicke, bekomme ich erst beim zweiten mal die korrekte Größe
Ich dachte mit invalidate() könnte ich das lösen, ging aber irgendwie nicht. Sowieso wäre es mir lieber, wenn da noch was einfacheres wäre, weil die Schleife eh nicht so toll wäre...
Zur Erläuterung hier der ganze Quelltext, ich änder das Textview über ein Options-Menü:
Ich suche einen Weg wie man Text in einem Textview an die Größe des Displays anpassen kann. Gibts da irgendwas einfaches? Alles was ich bisher weiß, ist dass ich mit getWidth() die Breite auslesen kann (height natürlich entspr.), auf die Weise könnte ich das natürlich in ner Schleife lösen, aber selbst das funzt nicht richtig:
Code:
TextView tv2 = (TextView)findViewById(R.id.textView3);
int laenge;
tv2.setText("Test");
tv2.invalidate();
laenge = tv2.getWidth();
Ich dachte mit invalidate() könnte ich das lösen, ging aber irgendwie nicht. Sowieso wäre es mir lieber, wenn da noch was einfacheres wäre, weil die Schleife eh nicht so toll wäre...
Zur Erläuterung hier der ganze Quelltext, ich änder das Textview über ein Options-Menü:
Code:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
TextView tv1 = (TextView)findViewById(R.id.textView4);
TextView tv2 = (TextView)findViewById(R.id.textView3);
int laenge;
switch (item.getItemId()) {
case R.id.item1: // Item1 = Settings
tv2.setText("Test");
tv2.invalidate();
laenge = tv2.getWidth();
tv1.setText(String.valueOf(laenge));
break;
default:
tv2.setText("Viel länger");
tv2.invalidate();
laenge = tv2.getWidth();
tv1.setText(String.valueOf(laenge));
break;
}
tv1.invalidate();
return super.onOptionsItemSelected(item);
}