Ich habe eine EditText
, eine Button
und eine TextView
. Wenn Sie auf die Schaltfläche klicken, zeigt textview den Text an, der in editiertext geschrieben wurde. Ist es möglich, die Größe der Textansicht abhängig vom Text zu finden? wenn es drei Zeichen hat "abc", was ist die Breite jetzt, wenn es 5 Zeichen wie "abcde" hat, was ist dann die Breite?So finden Sie den Textbereich (Höhe/Breite) von TextView programmgesteuert in Android
Antwort
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();
auf diese Weise versuchen, hoffen, dass diese Sie Ihr Problem lösen helfen.
yourTextView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
int width = yourTextView.getMeasuredWidth();
int height = yourTextView.getMeasuredHeight();
}
});
Hallo @MD, können Sie plcz einen Blick auf http://stackoverflow.com/questions/25196894/how-to-get-list-item-data-in-bindview-when-clicking-on -radiobutton-in-android –
Bitte versuchen Sie dies:
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 zu erhalten, müssen Sie die Ansicht/label/Text bearbeiten messen. Bitte lassen Sie mich wissen, wenn dies nicht funktioniert.
Beide Antworten sind richtig, deine und die obige ... Thnx funktioniert. –
Ples als Antwort markieren (die Schaltfläche unten nach unten) Und ich bin froh, es hat funktioniert. – Iosif
Bitte sagen Sie mir Breite in ??? Möchtest du ?
TextView
Methode getWidth()
gibt Sie Ihre Ansicht Breite in Pixel
TextView textView = (TextView)findViewById(R.id.textview);
textView.getWidth(); //width of your view, in pixels
Ich wollte die Breite je nach Text finden. –
TextView txt = new TextView(mContext);
txt.setText("Some Text)";
int height = txt.getLineCount() * txt.getLineHeight();
int width = txt.getWidth();
große Arbeit ... thnx. –
arbeitete wie ein Charme –