Ich habe einen EditText
name__, einen Button
und einen TextView
name__. 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?
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();
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.
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();
}
});
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
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;
TextView txt = new TextView(mContext);
txt.setText("Some Text)";
int height = txt.getLineCount() * txt.getLineHeight();
int width = txt.getWidth();