wake-up-neo.com

So finden Sie den Textbereich (Höhe/Breite) von TextView programmgesteuert in Android

Ich habe einen EditTextname__, einen Buttonund einen TextViewname__. Wenn Sie auf die Schaltfläche klicken, zeigt textview den in edittext geschriebenen Text. Ist es möglich, die Größe der Textansicht abhängig vom Text zu ermitteln. Wenn es drei Zeichen " abc " hat, was ist jetzt Breite, wenn es 5 Zeichen wie " abcde " hat, was ist dann die Breite?

13
BST Kaal
Rect bounds = new Rect();
Paint textPaint = textView.getPaint();
textPaint.getTextBounds(text,0,text.length(),bounds);
int height = bounds.height();
int width = bounds.width();

oder

textView.setText("bla");
textView.measure(0, 0);
textView.getMeasuredWidth();
textView.getMeasuredHeight();
58
pigeongram

Bitte versuchen Sie das:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    TextView edit = (TextView) findViewById(R.id.edit);
    edit.setTextSize(20);       
    edit.setText("Hello, world");       
    edit.measure(0, 0);
    int width = edit.getMeasuredWidth();
    Log.w("width", width.toString());
}

Bevor Sie Breite erhalten, müssen Sie die Ansicht/Beschriftung/den Text bearbeiten. Bitte lassen Sie mich wissen, wenn dies nicht funktioniert. 

10
Iosif

Versuchen Sie es auf diese Weise, ich hoffe, dies hilft Ihnen bei der Lösung Ihres Problems.

yourTextView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
   @Override
   public void onGlobalLayout() {
     int width = yourTextView.getMeasuredWidth();
     int height = yourTextView.getMeasuredHeight();

   }
});
2
Haresh Chhelana

bitte sag mir Breite in ??? willst du ?

Die TextView-Methode getWidth() gibt Ihnen die Breite Ihrer Ansicht in Pixeln 

TextView textView = (TextView)findViewById(R.id.textview);
textView.getWidth(); //width of your view, in pixels 
2
MilapTank

Ich habe diesen Code nicht in die Swift4-Syntax konvertiert, aber die Logik bleibt gleich. Dies ist eine Erweiterungsmethode für Xamarin.ios (C #).

Höhe berechnen

 public static nfloat GetEstimateHeight(this UITextView textView, UIView View)
    {
        var size = new CoreGraphics.CGSize(View.Frame.Width, height: float.PositiveInfinity);
        var estimatedSize = textView.SizeThatFits(size);
        return estimatedSize.Height;
    }

So berechnen Sie die Breite

    public static nfloat GetEstimateWidth(this UITextView textView, UIView View)
    {
        var size = new CoreGraphics.CGSize(View.Frame.Width, height: float.PositiveInfinity);
        var estimatedSize = textView.SizeThatFits(size);
        return estimatedSize.Width;
    }

Die Logik hier, die für Swift funktioniert, ist

var size = new CoreGraphics.CGSize(View.Frame.Width, height: float.PositiveInfinity);
        var estimatedSize = textView.SizeThatFits(size);
        var textViewFinalHeight = estimatedSize.Height;
0
Shanu Singh
TextView txt = new TextView(mContext);
txt.setText("Some Text)";
int height = txt.getLineCount() *  txt.getLineHeight();
int width = txt.getWidth();
0
Monir Khlaf