在渲染TextView之前获取TextView的高度

时间:2013-02-21 15:27:03

标签: java android textview android-linearlayout

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

我希望你能跟随我的发言。告诉我,如果我需要澄清更多的东西......

谢谢!

0 个答案:

没有答案