2016-06-20 24 views
0

Mit Android, weiß jemand, wie man die genaue Breite eines Textview in Pixel erhält, bevor es auf dem Bildschirm angezeigt wird? (programmgesteuert) Ich habe viel im Internet gesucht, aber ich habe nichts gefunden, das funktioniert.Ermitteln Sie die genaue Breite einer Textansicht in Pixel programmgesteuert (Android)

Danke

Links zum Beitrag Ich habe versucht:

    1. With a Paint
      With measure
      With density
  • +0

    , was Sie bisher versucht haben? Was sind diese Lösungen aus dem Internet, die Sie ausprobiert haben, aber sie haben nicht funktioniert? –

    +0

    Ich bearbeite meinen Post für mehr Details – Kemix

    Antwort

    1

    Es war besser, dass Sie etwas Code gesendet hatten. Dann könnten wir dir mehr helfen. Aber ich denke, dass Sie diese Methoden verwenden können:

    yourText.measure(0, 0); 
    

    diese Codes Und dann:

    int width = view.getMeasuredWidth(); 
    int height = view.getMeasuredHeight(); 
    
    +0

    Sorry, ich dachte nur, dass dieser Weg nicht funktioniert, aber in der Tat war mein Code schlecht ... Vielen Dank für Ihre schnelle Antwort – Kemix

    0

    dies versuchen.

    textView.setText("your text"); 
    textView.measure(0, 0); 
    textView.getMeasuredWidth(); 
    textView.getMeasuredHeight(); 
    
    0

    Als Nargess sagte man von Messen nach Ansicht der Breite und Höhe bessere Nutzung Methoden würden, wie Code unten:

    Display display = getWindowManager().getDefaultDisplay(); 
    Point size = new Point(); 
    display.getSize(size); 
    view.measure(size.x, size.y); 
    int width = view.getMeasuredWidth(); 
    int height = view.getMeasuredHeight(); 
    
    3

    ich denke, dass Sieverwenden sollten, die normalerweise verwendet wird, um die Höhe und die Breite von Ansichten zu ermitteln, bevor sie gezeichnet werden.

    Zum Beispiel

    yourTextView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() { 
    
        @Override 
        public void onGlobalLayout() { 
    
         yourTextView.getWidth(); 
    
        } 
    });