0

我试图以某种方式获得 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;

我希望你能听懂我的言论。告诉我,如果我需要澄清更多的事情...

谢谢!

4

0 回答 0