TextView an Layoutgröße anpassen

  • 2 Antworten
  • Neuster Beitrag
Sentenza

Sentenza

Fortgeschrittenes Mitglied
Threadstarter
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:

Code:
TextView tv2 = (TextView)findViewById(R.id.textView3);
int laenge;
tv2.setText("Test");
tv2.invalidate();
laenge = tv2.getWidth();
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ü:
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);
    }
 
S

swordi

Gewerbliches Mitglied
edit: hab dein problem falsch verstanden

vergiss den post
 
S

sixi

Fortgeschrittenes Mitglied
Ich bin mir nicht ganz sicher ob ich verstanden hab was du meinst :)
Hast du es mal mit getMeasuredWidth() versucht?
 
Oben Unten