Я ищу метод в Android, который будет принимать входные данные (text, text_font_size, device_width), и на основе этих вычислений он вернет, сколько высоты потребуется для отображения определенного текста?
Я устанавливаю время просмотра текстового представления/веб-просмотра на основе его содержимого, я знаю о содержимом warp, но я не могу использовать его в моем случае из-за некоторой проблемы с минимальной высотой веб-представления.
Итак, я пытаюсь рассчитать высоту и на основании этого устанавливаю высоту представления.
Я пробовал следующие способы:
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
если я установил эти значения для своего представления, а затем отрезал какой-то текст, не показывая весь контент.
Снова он выглядит нормально на некоторых таблицах, поскольку он имеет большую ширину, но не на телефоне.
Есть ли способ вычислить высоту по содержанию?