动态计算View元素的大小

时间:2011-05-31 10:14:30

标签: android dynamic view size android-linearlayout

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

由于

2 个答案:

答案 0 :(得分:3)

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

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

由于 迪帕克

答案 1 :(得分:0)

您可以通过提供以下内容来获取视图的当前宽度:

String s = tv.getText().toString(); //tv is my textview name
float currentWidth = tv.getPaint().measureText(s);

要获得手机密度,请提供:

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

执行currentWidth * phoneDensity时,您可以根据设备获得宽度。