Java 如何获取视图的宽度和高度

Java 如何获取视图的宽度和高度,java,android,Java,Android,我有一个名为game的类,它扩展了添加到LinearLayout的视图。我知道它正在显示我的视图,但我需要获得视图的宽度和高度,以便绘制一些图像。这是我的构造函数代码: public Game(Activity activ) { activ.setContentView(R.layout.game); ... ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(LayoutParams.FILL_PARENT,

我有一个名为game的类,它扩展了添加到LinearLayout的视图。我知道它正在显示我的视图,但我需要获得视图的宽度和高度,以便绘制一些图像。这是我的构造函数代码:

public Game(Activity activ)
{
    activ.setContentView(R.layout.game);

    ...

    ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(LayoutParams.FILL_PARENT,
            LayoutParams.FILL_PARENT);
    setLayoutParams(lp);

    layout = (LinearLayout)activ.findViewById(R.id.game_layout);
    layout.addView(this);

    ...
}

现在,当我执行这个.getWidth()和这个.getHeight()时,我一直得到一个0的返回值。如何获取视图的宽度和高度?

您可以使用
layout.getLayoutParams()
获取布局参数,然后使用其中的
height
属性


更新:如果您得到的值为零值,也可能意味着视图尚未初始化。

视图类同时具有getHeight()和getWidth方法:

() ()

这里还有一个关于这个主题的博客:


我今天回答了一个类似的问题。试试看。它应该会起作用


您建议什么时候检查宽度和高度?您也可以试试layout.getMeasuredWidth()?噢,天哪,谢谢!最后我变得很沮丧。你是最棒的。