我正在寻找一种在Android中的方法,它将接受输入(文本、文本字体大小、设备宽度),并基于这些计算返回需要显示特定文本所需的高度。
我根据内容在运行时设置文本视图/ WebView的高度,我知道wrap_content的用法,但由于某些WebView的最小高度问题,我无法在我的情况下使用它。
因此,我尝试计算高度并基于此设置视图高度。
我已经尝试了以下方式:
我根据内容在运行时设置文本视图/ WebView的高度,我知道wrap_content的用法,但由于某些WebView的最小高度问题,我无法在我的情况下使用它。
因此,我尝试计算高度并基于此设置视图高度。
我已经尝试了以下方式:
Paint paint = new Paint();
paint.setTextSize(text.length());
Rect bounds = new Rect();
paint.getTextBounds(text, 0, 1, bounds);
mTextViewHeight= bounds.height();
输出结果如下:
1)对于字体大小15,“Hello World”返回高度为13。
2)“Jelly Bean的最新版本已经发布,带来了性能优化”,对于字体大小15,返回高度为16。
接着我尝试了以下内容:
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”对于字体大小为15,返回高度为17
2)“Jelly Bean的最新版本已经发布,性能得到优化”对于字体大小为15,返回高度为17
如果我将这些值设置为我的视图,则其会截断一些文本,不能显示全部内容。
在某些表格上看起来没问题,因为它们具有很大的宽度,但在手机上不行。
是否有一种基于内容计算高度的方法?