Jak zmierzyć wysokość TextView na podstawie szerokości urządzenia i rozmiaru czcionki?

Szukam metody w Androidzie, która pobierze dane wejściowe (tekst, text_font_size, device_width) i na podstawie tych obliczeń zwróci ile wysokości będzie wymagane do wyświetlenia konkretnego tekstu?

Ustawiam czas wyświetlania tekstu / wysokość Webview na podstawie jego zawartości, wiem o zawartości warp, ale nie mogę użyć w moim przypadku z powodu jakiegoś problemu z minimalną wysokością widoku sieci.

Próbuję więc obliczyć wysokość i na tej podstawie ustawiam wysokość widoku.

Próbowałem na następujące sposoby

Paint paint = new Paint();
paint.setTextSize(text.length()); 
Rect bounds = new Rect();
paint.getTextBounds(text, 0, 1, bounds);
mTextViewHeight= bounds.height();

Więc wyjście jest

1) „Hello World” zwraca wysokość 13 dla czcionki 15

2) „Najnowsza wersja Jelly Bean jest tutaj, z optymalizacją wydajności” zwraca wysokość 16 dla czcionki 15

Potem spróbowałem

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

Więc wyjście jest

1) „Hello World” zwraca wysokość 17 dla czcionki 15

2) „Najnowsza wersja Jelly Bean jest tutaj, z optymalizacją wydajności” zwraca wysokość 17 dla czcionki 15

jeśli ustawię te wartości w moim widoku, to wycinam jakiś tekst, nie pokazując całej zawartości.

Ponownie wygląda to dobrze na niektórych stołach, ponieważ ma dużą szerokość, ale nie ma telefonu.

Czy istnieje sposób obliczenia wysokości na podstawie treści?

questionAnswers(3)

yourAnswerToTheQuestion