小编cod*_*oda的帖子

Android OpenGL:睡眠后的疯狂长宽比

如果我按下我的Android手机上的电源按钮(或等待它超时)并且手机进入睡眠状态,在重新唤醒之后,屏幕宽高比完全没有了.

截图:

破碎

http://i.imgur.com/4C6ID.png

正确

http://i.imgur.com/CNAV0.png

在GameActivity.onCreate()中

    // Grab display info
    DisplayMetrics dm = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(dm);
    ACTUAL_SCREEN_WIDTH = (int) dm.widthPixels;
    ACTUAL_SCREEN_HEIGHT = (int) dm.heightPixels;
    ACTUAL_DENSITY = dm.density;

    double scale = ((double) MainMenuActivity.resolutionScale / 100.0);
    SCREEN_WIDTH = (int) (ACTUAL_SCREEN_WIDTH * scale);
    SCREEN_HEIGHT = (int) (ACTUAL_SCREEN_HEIGHT * scale);
    DENSITY = ACTUAL_DENSITY * scale;

    // Setup graphics
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    surface_view = new GLSurfaceView(this);

    if (SCREEN_WIDTH != ACTUAL_SCREEN_WIDTH
            || SCREEN_HEIGHT != ACTUAL_SCREEN_HEIGHT)
        surface_view.getSurfaceHolder().setFixedSize(SCREEN_WIDTH,
                SCREEN_HEIGHT);
Run Code Online (Sandbox Code Playgroud)

我正在GLSurfaceView中正确地重新加载所有内容(即回击主页并返回游戏重新加载纹理等).

我在onWindowFocusChanged中打印出了方向,它是横向的(如预期的那样).

如果我不使用setFixedSize(即,如果resolutionScale为100),则不会出现此问题.此外,如果游戏前面出现另一个窗口(如偏好设置窗口),然后您返回游戏,问题就会消失.

提前致谢.自从研究枯竭以来,我一直在尝试随机的东西大约一个小时.

android opengl-es

7
推荐指数
1
解决办法
2718
查看次数

标签 统计

android ×1

opengl-es ×1