如何获取SurfaceView的宽度和高度

4

我正在开发一款游戏。我已经在相对布局中的SurfaceView上绘制了图像。我希望我的游戏在所有分辨率下的外观和感觉都是相同的。 因此,现在我想要测量SurfaceView/Canvas的宽度和高度,以便我可以以正确的比例启动图像,而不是硬编码的值。但我无法检索到高度和宽度,请帮帮我。

  I tried canvas.getWidth() and all but it returns 0.
2个回答

5
也许是因为您尝试过早获取宽度。
请尝试以下操作:
canvas.post(new Runnable()
    {
      public void run()
      {
        int w = canvas.getWidth();
      }
    }
);

这很可能是正确的,我过去也遇到过同样的问题。 - user432209
1
我在SurfaceView的重写方法OnSurfaceViewChanged()中保存了SurfaceView的宽度和高度,这对我很有效。 - Pramod
抱歉问一下(可能有点蠢)的问题,但我找不到OnSurfaceViewChanged方法: http://developer.android.com/reference/android/view/SurfaceView.html - Tobias Reich

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接