我试图以某种方式获得 TextView 的高度(实际上是在渲染它之前,因为它必须适合 ListView)。
我试过了
Rect currentBounds = new Rect();
textview1.getPaint().getTextBounds(textview1.getText().toString(), 0,
textview1.length(), currentBounds);
String size = rect.height();
...但我总是得到相同的高度数字。文本始终具有相同的宽度(显示的宽度);也许这是一个问题?
或者,我通过 StaticLayout 进行了尝试:
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
StaticLayout measure = new StaticLayout(textview11.getText(), textview1.getPaint(),
width, Layout.Alignment.ALIGN_NORMAL, 1.0f, 1.0f, false);
但也在这里,我只是得到奇数,我真的不知道如何处理......它们与上面的完全不同,无论我如何转换它们......
通过以下方式设置 LinearLayout 的新高度:
LinearLayout layout = (LinearLayout)findViewById(R.id.ll);
LayoutParams params = layout.getLayoutParams();
params.height = height;
我希望你能听懂我的言论。告诉我,如果我需要澄清更多的事情...
谢谢!