Android 动态计算视图元素的大小

Android 动态计算视图元素的大小,android,dynamic,view,size,android-linearlayout,Android,Dynamic,View,Size,Android Linearlayout,我有一个未知数量的TextView元素,一些EditText元素等等,它们都放在一个线性布局中。。。我想在运行时计算布局的高度,这样就可以得到不同分辨率屏幕的精确尺寸(以像素为单位)。一些编辑框可以包含比其他编辑框更多的文本,因此它们的大小将更大。。。 是否有可能在运行时计算布局的大小 谢谢您可以通过以下方式获得视图的当前宽度: String s = tv.getText().toString(); //tv is my textview name float currentWidth = tv

我有一个未知数量的TextView元素,一些EditText元素等等,它们都放在一个线性布局中。。。我想在运行时计算布局的高度,这样就可以得到不同分辨率屏幕的精确尺寸(以像素为单位)。一些编辑框可以包含比其他编辑框更多的文本,因此它们的大小将更大。。。 是否有可能在运行时计算布局的大小


谢谢

您可以通过以下方式获得视图的当前宽度:

String s = tv.getText().toString(); //tv is my textview name
float currentWidth = tv.getPaint().measureText(s);
要获取电话密度,请提供:

float phoneDensity = this.getResources().getDisplayMetrics().density;

当您执行
currentWidth*phoneDensity
时,您将根据您的设备获得宽度。

要获得版面高度,您必须在onWindowFocusChanged()方法中写入代码。 首先在
onCreate()
方法中获取布局,然后编写以下代码

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    // TODO Auto-generated method stub
    super.onWindowFocusChanged(hasFocus);
    System.out.println("...111Height..."+mainLayout.getMeasuredHeight());
}
谢谢
Deepak

谢谢这是一个非常酷的解决方案。不幸的是,这只能解决我的部分问题。我需要整个视图的大小,包括边距、填充等。我不确定是否有一个解决方案可以解释我为什么问:)tnx,而不仅仅是在onWindowFocusChanged中,可以在其他位置(如onclicklisteners)获得布局的大小。不需要依靠焦点来获得元素的大小。只要要求测量尺寸的代码出现在测量后,就应该可以了。