Как измерить высоту TextView на основе ширины устройства и размера шрифта?
Я ищу метод в Android, который будет принимать входные данные (text, text_font_size, device_width) и на основе этих расчетов вернет, сколько высоты потребуется для отображения конкретного текста?
Я устанавливаю время выполнения текстового представления / высоты веб-просмотра на основе его содержимого, я знаю о содержимом деформации, но не могу использовать в моем случае из-за некоторой проблемы минимальной высоты веб-просмотра.
Поэтому я пытаюсь рассчитать высоту и на основании этого я устанавливаю высоту просмотра.
Я пробовал следующими способами
Paint paint = new Paint();
paint.setTextSize(text.length());
Rect bounds = new Rect();
paint.getTextBounds(text, 0, 1, bounds);
mTextViewHeight= bounds.height();
Таким образом, выход
1) «Hello World» возвращает высоту 13 для шрифта 15
2) «Последняя версия Jelly Bean здесь с оптимизацией производительности» возвращает высоту 16 для шрифта 15
Тогда я попробовал с
Paint paint = new Paint();
paint.setTextSize(15);
paint.setTypeface(Typeface.SANS_SERIF);
paint.setColor(Color.BLACK);
Rect bounds = new Rect();
paint.getTextBounds(text, 0, text.length(), result);
Paint.FontMetrics metrics = brush.getFontMetrics();
int totalHeight = (int) (metrics.descent - metrics.ascent + metrics.leading);
Таким образом, выход
1) «Hello World» возвращает высоту 17 для шрифта 15
2) «Последняя версия Jelly Bean с оптимизацией производительности» возвращает высоту 17 для шрифта 15
если я установлю эти значения в моем представлении, тогда будет вырезан какой-то текст, он не будет отображать весь контент
Снова это выглядит хорошо на некоторых столах, поскольку имеет большую ширину, но не на телефоне.
Есть ли способ рассчитать высоту на основе содержимого?