Как найти текстовую область (Высота/Ширина) TextView программно в android

У меня есть EditText, a Button и a TextView. При нажатии на кнопку textview отображает текст, написанный в edittext. Можно ли найти размер текстового изображения, занятого в зависимости от текста. то есть, если у него есть три символа " abc", то какая ширина теперь, если у нее есть 5 символов, таких как " abcde", тогда какая ширина?

Ответ 1

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

или

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

Ответ 2

Пожалуйста, попробуйте следующее:

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());
}

Прежде чем вы получите ширину, вы должны измерить редактирование вида/метки/текста. Пожалуйста, дайте мне знать, если это не работает.

Ответ 3

Попробуйте этот путь, надеюсь, что это поможет вам решить вашу проблему.

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

   }
});

Ответ 4

Скажите, пожалуйста, ширину? вы хотите?

TextView метод getWidth() дает вам ширину вашего вида, в пикселях

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

Ответ 5

TextView txt = new TextView(mContext);
txt.setText("Some Text)";
int height = txt.getLineCount() *  txt.getLineHeight();
int width = txt.getWidth();