1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

TextView an Layoutgröße anpassen

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Sentenza, 31.08.2011.

  1. Sentenza, 31.08.2011 #1
    Sentenza

    Sentenza Threadstarter Erfahrener Benutzer

    Beiträge:
    224
    Erhaltene Danke:
    65
    Registriert seit:
    15.08.2011
    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);
        }
     
  2. swordi, 31.08.2011 #2
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    edit: hab dein problem falsch verstanden

    vergiss den post
     
  3. sixi, 31.08.2011 #3
    sixi

    sixi Erfahrener Benutzer

    Beiträge:
    237
    Erhaltene Danke:
    64
    Registriert seit:
    20.01.2009
    Ich bin mir nicht ganz sicher ob ich verstanden hab was du meinst :)
    Hast du es mal mit getMeasuredWidth() versucht?
     

Diese Seite empfehlen