获取SurfaceView尺寸

3rg*_*rgo 1 android resolution surfaceview

我想我可能会问一个虚拟问题,但我对 Android 编程还是个新手,而且我无法(尽管我尽了所有努力)在 Google 上找到答案。

问题是,我正在尝试开发一个带有 2D 图形的小游戏。我希望我的“游戏板”位于屏幕上的特定位置,以便我可以在框的上方和下方显示游戏中的信息。但由于开始出现很多 Android 手机,我正在考虑获取“动态”值,以便我可以调整字体大小以适应每个设备。

我的游戏不是全屏的(但也有可能,没什么大不了的),而是在一个没有标题栏的窗口中。

我正在使用默认类的扩展SurfaceView,实现SurfaceHolder.Callback. 我尝试编写以下方法:

public void getViewSize()
    {
        VIEW_WIDTH = this.getWidth();
        VIEW_HEIGHT = this.getHeight();
    }
Run Code Online (Sandbox Code Playgroud)

但返回的值为零。

有人有想法吗(即使这意味着改变显示策略)?多谢。

xil*_*il3 5

你可以这样做:

public void onDraw(Canvas canvas) {
  VIEW_WIDTH = canvas.getWidth();
  VIEW_HEIGHT = canvas.getHeight();
}
Run Code Online (Sandbox Code Playgroud)