Nexus 4 KitKat 4.4と で開発中です。IMMERSIVE MODE
をゲームに追加しようとしています。 glViewport
を正しく設定するには画面の高さが必要です。Android、GL、IM_MERSIVE MODEの画面サイズ
は以前、私はそれはIMMERSIVE MODE
で画面の実際の高さを返しません
@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;
}
を使用しました。
だから私は
private static class Renderer implements GLSurfaceView.Renderer {
public void onSurfaceChanged(GL10 gl, int width, int height) {
からの値を使用することを開始し、アプリが起動したとき、それはうまく働きました。私は、ホームボタンを押すとゲームonSurfaceChanged
に戻った後、ホーム画面に戻っている場合、再びが、古い間違った値で呼び出されます(非没入モードの画面サイズ、小さく、通常の)
没入型画面サイズが800x1280 REGULARサイズが800x1184であります
普通のサイズになったらglViewport
に設定すると、画面の上部に黒い線が表示されます。
PSIMMERSIVE MODE
は、ボリュームボタンを押すと消えます。
PS2
私は、メソッドの独自の実装を次のようしています。スクリーン/ウィンドウのサイズ変更を処理するのには役立ちません。
@Override
public void onWindowFocusChanged(boolean hasFocus) {
@payeliタグを不必要に「改善」しないようにしてください。 kitkatには既に2つのタグがありますが、3つ目は必要ありませんでした。 – Charles