Получение размеров SurfaceView - PullRequest
1 голос
/ 07 июля 2010

Я думаю, что мог бы задать фиктивный вопрос, но я все еще новичок в программировании на Android, и я не смог (несмотря на все мои усилия) найти свой ответ в Google.

Дело в том, что я пытаюсь разработать небольшую игру с 2D-графикой. Я хочу, чтобы моя «игровая доска» находилась в определенном месте на моем экране, чтобы я мог отображать игровую информацию выше и ниже поля. Но с тех пор, как появилось много Android-телефонов, я думал о том, чтобы получить «динамические» значения, чтобы я мог адаптировать свой размер шрифта к каждому устройству.

Моя игра не в полноэкранном режиме (но, может быть, это не так уж и сложно), но в окне без строки заголовка.

Я использую расширение класса SurfaceView по умолчанию, реализующее SurfaceHolder.Callback. Я попытался написать следующий метод:

public void getViewSize()
    {
        VIEW_WIDTH = this.getWidth();
        VIEW_HEIGHT = this.getHeight();
    }

но возвращаемые значения равны нулю.

У кого-нибудь есть идея (даже если это означает изменение стратегии отображения)? Большое спасибо.

1 Ответ

4 голосов
/ 07 июля 2010

Вы можете сделать это:

public void onDraw(Canvas canvas) {
  VIEW_WIDTH = canvas.getWidth();
  VIEW_HEIGHT = canvas.getHeight();
}
...