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
、古い間違った値で再度呼び出されます (非没入モードの画面サイズ、小さい、通常)
IMMERSIVE SCREEN のサイズは 800x1280 REGULAR のサイズは 800x1184
通常のサイズを取得して設定するとglViewport
、画面の上部に黒い線が表示されます。
PSまたIMMERSIVE MODE
、音量ボタンを押すと失われます。
PS2
私は次のメソッドimplを持っています。画面/ウィンドウのサイズ変更を処理するのには役立ちません。
@Override
public void onWindowFocusChanged(boolean hasFocus) {