android - 在 Android 中获取布局的宽度/高度

标签 android android-layout

我想知道如何测量 View 的尺寸。在我的例子中,它是一个绝对布局。我已经阅读了有关这些问题的答案,但我仍然不明白。

这是我的代码:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main);      

    AbsoluteLayout layoutbase = (AbsoluteLayout) findViewById(R.id.layoutbase);       

    drawOval(); 

}
public void drawOval(){ //, int screenWidth, int screenHeight){ 
    AbsoluteLayout layoutbase = (AbsoluteLayout) findViewById(R.id.layoutbase);     

    int screenWidth = layoutbase.getWidth();
    int screenHeight = layoutbase.getHeight();
    Log.i("MyActivity", "screenWidth: " + screenWidth + ", screenHeight: " +screenHeight);

    Coordinates c = new Coordinates(BUTTONSIZE,screenWidth,screenHeight);

    ...some code ...

    ((ViewGroup) layoutbase ).addView(mybutton, new AbsoluteLayout.LayoutParams(BUTTONSIZE, BUTTONSIZE, c.mX, c.mY));


    mybutton.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            showText(mybutton);
        }
    });
}

public void showText(View button){      

    int x = findViewById(LAYOUT).getWidth();
    int y = findViewById(LAYOUT).getHeight(); 

    Toast message = Toast.makeText(this, "x: " + x , Toast.LENGTH_SHORT);       
    message.show();     


}

getWidth() 命令在 showText() 中运行良好,但在 drawOval()不行 .我知道那里看起来有点不同,但我还在 drawOval() 中使用了 int x = findViewById(LAYOUT).getWidth(); 版本,x/y 是总是 0。我真的不明白为什么在早些时候似乎没有宽度/高度。即使我实际上在绝对布局上绘制了一个按钮,getWidth() 也会返回 0。显然,我想在 drawOval() 中测量尺寸。

最佳答案

我想对你有帮助。

   LinearLayout headerLayout = (LinearLayout)findviewbyid(R.id.headerLayout);
    ViewTreeObserver observer = headerLayout .getViewTreeObserver();
            observer.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {

        @Override
        public void onGlobalLayout() {
            // TODO Auto-generated method stub
            int headerLayoutHeight= headerLayout.getHeight();
        int headerLayoutWidth = headerLayout.getWidth();
        headerLayout .getViewTreeObserver().removeGlobalOnLayoutListener(
                this);
    }
});


}  

关于android - 在 Android 中获取布局的宽度/高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8885650/

相关文章:

android - 替换 fragment 和方向更改

android - WindowManager.LayoutParams - 如何将按钮放置在右下角

android - Android LinearLayout不可见

android - 如何修复 Eclipse/Android 安装?图形 XML 编辑器中的 PNG 加载问题

android - R 无法解析为 Eclipse 中的变量,并且缺少 R.java

java - RealmResult 与适配器的多对多关系

android - Flutter Scaffold 允许子系统在导航栏后面

android - RecyclerView 自动滚动到 WebView/Fresco SimpleDraweeView item

android - 工具栏的重力(或定位)在 CollapsingToolbarLayout 中无法正常工作

Android Tab内容与选项卡重叠