У меня есть несколько квадратных TextViews (с различными динамическими размерами (я не знаю их во время разработки)) в моем Приложении и хочу установить их текст.Но если я скажу TextView.setText ();шрифт текста довольно маленький.Если я устанавливаю TextView.setFontSize, иногда текст отображается не полностью (помните: они имеют динамический размер).Итак, мой вопрос: как я могу придать тексту идеальный шрифт (используя все пространство кнопки и быть полностью отображаемым) или сделать текст квадратным, чтобы он занимал все пространство TextView?Спасибо
Я думаю, вам нужно будет рассчитать высоту кнопки и текст, который вы хотите установить. Вам понадобятся следующие API: Paint.getTextBounds () и View.getHeight ().
Вы можете использовать Paint.getTextBounds () , например:
int textViewWidth = textView.getMeasuredWidth(); float textSize = 1.0; do { textSize += 0.5 textView.setTextSize(textSize); Paint textPaint = textView.getPaint(); textPaint.getTextBounds(text, 0, text.length(), rect); int width = rect.width(); } while (width < textViewWidth); textView.setTextSize(textSize - 0.5);
Просматривая документацию , похоже, что вы сможете использовать что-то вроде этого:
TextView tv = (TextView) findViewById(R.id.myTextView); tv.setTextScaleX(tv.getWidth());
Это масштабирует ширину вашего текста до ширины TextView.
TextView