我正在使用 Nexus 4 KitKat 4.4 进行开发并尝试添加IMMERSIVE MODE
到我的游戏中。我需要glViewport
正确设置屏幕高度。
以前我用
@SuppressWarnings("deprecation")
@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2)
public static int getScreenHeight() {
if (Main.m_activity == null)
return -1;
Display display = Main.m_activity.getWindowManager()
.getDefaultDisplay();
int height = -1;
if(Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB){
//width = display.getWidth(); // deprecated
height = display.getHeight(); // deprecated
}else{
Point size = new Point();
display.getSize(size);
height = size.y;
}
return height;
}
它不会返回屏幕的实际高度IMMERSIVE MODE
。
所以我开始使用来自
private static class Renderer implements GLSurfaceView.Renderer {
public void onSurfaceChanged(GL10 gl, int width, int height) {
并且在应用程序启动时运行良好。如果我按下主屏幕按钮并返回主屏幕然后返回游戏onSurfaceChanged
再次调用但旧的错误值(非沉浸式模式屏幕尺寸,更小,常规)
沉浸式屏幕尺寸为 800x1280 常规尺寸为 800x1184
当我获得常规尺寸并将其设置时,glViewport
我会在屏幕顶部看到黑线。
PSIMMERSIVE MODE
当我按下音量按钮时也会丢失。
PS2
我有以下方法impl。它无助于处理屏幕/窗口调整大小。
@Override
public void onWindowFocusChanged(boolean hasFocus) {