我正在开发一个Android应用程序,我想在不同的屏幕尺寸上放置文本。有一个TextView我想要估计合适的高度,以便文本适合里面。该文本包含换行符(“\ n”):
TextView table3team1 ...
....
Paint paint = new Paint();
Rect bounds = new Rect();
paint.setTypeface(table3team1.getTypeface());
paint.setTextSize((float)scheddateminsize);
String text = table3team1.getText().toString();
paint.getTextBounds(text, 0, text.length(), bounds);
int maxlines = 0;
int lines = text.length() - text.replace("\n", "").length();
maxlines = lines;
int height_in_pixels = maxlines * bounds.height();
table3team1.setMinHeight(height_in_pixels);
table3team2.setMinHeight(height_in_pixels);
在上面的代码中,我通过将文本行数(新行字符数)乘以一行的估计高度(paint.getTextBounds函数)来估计文本高度。当文本的每一行都适合一行时,它确实可以正常工作。但是如果文本更长,它会自动转到下一行,从而使得行数比我想象的要多,而且文本不适合边界:
您可以从该图片中看到底部有些文字不适合。 是否有可能获得文本的边界,包括考虑新行字符的高度以及由于文本不适合一行的新行?或者还有其他方法吗?