保持视图始终为square with width = fill_parent

时间:2014-02-25 10:39:22

标签: android android-layout

我有一个宽度= fill_parent的android布局我想要总是有Width = Height我该怎么做?无论我在哪里检查宽度等于0.我在哪里可以看到实际宽度并将其设置为高度?

3 个答案:

答案 0 :(得分:0)

您可以使用

@Override
public void onWindowFocusChanged(boolean hasFocus) {
// TODO Auto-generated method stub
super.onWindowFocusChanged(hasFocus);
  // get width here


} 

答案 1 :(得分:0)

使用方形布局的最简单方法是将其子类化,并override使用onMeasure方法。例如

@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    super.onMeasure(widthMeasureSpec, widthMeasureSpec);
}

答案 2 :(得分:0)

您可以使用以下方法获取相应视图的宽度,并可以通过代码动态添加视图的高度。

view.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
    @Override
    public void onGlobalLayout() {
       //Do it here
       LinearLayout layoutGet=(LinearLayout) findViewById(R.id.GameField1);
       LayoutParams layParamsGet= layoutGet.getLayoutParams();
       int width=layParamsGet.width;
    }
    });

在相应视图之后添加高度。