Android应用仅在最小化后运行

时间:2017-01-14 18:19:36

标签: java android surfaceview

我试图制作Android蛇游戏,我希望网格在屏幕宽度(纵向)上延伸。

我使用drawable存储我的png,当我添加行grid.setBounds(0,0,screenWidth,screenWidth)时,我的手机首先会显示一个白色的屏幕,但是一旦我最小化并重新打开我的应用程序,它会按预期工作。 / p>

如果我将标准数字作为参数放入,该应用程序也可按预期工作。这是我在android 7上的nexus 6P。当我在旧设备上模拟它时它可以工作,但在较新的设备上模拟,我看到同样的问题。我得到的屏幕宽度如下:

WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
Point size = new Point();
display.getSize(size);
screenWidth = size.x;
screenHeight = size.y;
scale = screenWidth/1024.0;

如果有人能提供帮助,那将非常感激。

1 个答案:

答案 0 :(得分:0)

尝试以onWindowFocusChnaged活动方式获取屏幕尺寸。

@Override
public void onWindowFocusChanged(boolean hasFocus)
{
    super.onWindowFocusChanged(hasFocus);
    WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
    Display display = wm.getDefaultDisplay();
    Point size = new Point();
    display.getSize(size);
    screenWidth = size.x;
    screenHeight = size.y;
    scale = screenWidth/1024.0;
}