Kindle Fire和GlSurfaceView.getHeight()

时间:2012-05-25 16:21:36

标签: java android kindle

我正在为点火开发一款游戏,游戏总是在隐藏着这个游戏的情况下运行。

只有当用户进入暂停菜单时,该栏才会出现,我只希望该栏显示在游戏中。

但似乎当栏显示GlSurfaceView.getHeight()从600变为580,我的游戏调整大小,但我不想要这种行为,

我只是希望酒吧出现在游戏中并且我的游戏不动,我已经尝试过使用GlSurfaceView.setMinimumHeight(600);

但是kindle完全忽略了这一点。

这就是我的游戏总是运行的方式:enter image description here

当我激活酒吧时会发生这种情况:

enter image description here

而不是:

enter image description here

你知道一种避免这种情况的方法吗?

谢谢!

要创建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);

            }
        });
}

1 个答案:

答案 0 :(得分:1)

可能的解决方案:

  1. 在活动的onCreate()方法上尝试:

    getWindow()。setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);

    请注意,根据我的经验,当这些代码运行时,当它们被使用时,某些视图会出现一些奇怪的问题,所以即使它有效,也请进行一些广泛的测试。

  2. 尝试将清单设置为有一些configChanges标志,但我没有测试它,我再也没有点火了。