如何在android中动态获取布局的大小

时间:2013-09-24 06:55:48

标签: android textview android-linearlayout

我正在为线性布局添加文本视图,以便在三星s2中它工作正常并且在三星s3设备布局高度减少。我找到布局高度但我没有得到

2 个答案:

答案 0 :(得分:0)

从布局中获取视图树观察者并将侦听器附加到它。现在在它里面,你可以获得它的高度或宽度,你只需要取消全局布局监听器。请注意,对于Android sdk> 16你必须使用mContainer.getViewTreeObserver()。removeOnGlobalLayoutListener(this);

private ViewGroup mContainer;

@Override
    public void onResume() {
        super.onResume();
        final ViewTreeObserver observer = mContainer.getViewTreeObserver();
        observer.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                int layoutHeight = mContainer.getHeight();
                rowHeight = layoutHeight / getResources().getInteger(R.integer.rows);
                mContainer.getViewTreeObserver().removeGlobalOnLayoutListener(this);
                if (Build.VERSION.SDK_INT >= 16) {
                    mContainer.getViewTreeObserver().removeOnGlobalLayoutListener(this);
                }
            });
        }
    }

答案 1 :(得分:0)

  1. 如果要将任何视图动态添加到父级,则可以 通过使用重力,重量等来调整它,以便它可以 兼容所有的分辨率。不要给出硬编码值。
  2. 您要求获得布局的高度,可以使用 的getHeight()。