キンドルファイア用のゲームを開発していますが、ゲームは常にバーを非表示にして実行されます。
ユーザーが一時停止メニューに入ったときにのみバーが表示されます。バーがゲームの上に表示されるようにしたいだけです。
しかし、バーが表示されると GlSurfaceView.getHeight() が 600 から 580 に変更され、ゲームのサイズが変更されるようですが、その動作は望ましくありません。
ゲームの上にバーが表示され、ゲームが動かないようにしたいだけです。すでに GlSurfaceView.setMinimumHeight(600); で試しました。
しかし、kindleは単にそれを無視します。
これは私のゲームが常に実行される方法です:
そして、バーをアクティブにすると、これが起こります:
これの代わりに :
これを回避する方法を知っていますか?
ありがとう!
GlSurfaceView を作成するには、次のようにします。
OnCreate() {
s_activity.m_view = new GameGLSurfaceView(s_activity.getApplication(), true, pixelSize,depthSize, stencilSize);
}
public GameGLSurfaceView(Context context, boolean translucent,int pixelSize, int depth, int stencil)
{
super(context);
mRenderer = new GameRenderer(context, this);
setRenderer(mRenderer);
}
バーを非表示にして表示するには、この関数を使用します
private static final int AMAZON_FLAG_NOSOFTKEYS = 0x80000000;
private static final int FLAG_SUPER_FULLSCREEN = AMAZON_FLAG_NOSOFTKEYS | WindowManager.LayoutParams.FLAG_FULLSCREEN;
public static void toggleKindleBar(final int toDo)
{
if( s_activity != null)
s_activity.runOnUiThread(new Runnable()
{
public void run()
{
s_activity.getWindow().clearFlags( toDo!=1? WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN : FLAG_SUPER_FULLSCREEN);
s_activity.getWindow().addFlags( toDo!=1? FLAG_SUPER_FULLSCREEN:WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
});
}