Kindle Fire и GlSurfaceView.getHeight ()

1

Я развиваю игру для зажигательного огня, игра всегда запускается со скрытым баром.

Только когда пользователь входит в меню пауз, панель должна появиться, я хочу, чтобы панель отображалась поверх игры.

Но кажется, что при появлении панели GlSurfaceView.getHeight() изменяется от 600 до 580, и моя игра меняет размер, но я не хочу этого поведения,

Я просто хочу, чтобы панель отображалась над игрой, и моя игра не двигается, я уже пробовал с помощью GlSurfaceView.setMinimumHeight(600);

но разжигание просто игнорирует это.

так я всегда играю: Изображение 174551

и когда я активирую панель, это происходит:

Изображение 174551

вместо этого:

Изображение 174551

вы знаете способ избежать этого?

Благодарю!

Чтобы создать 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);

            }
        });
}
  • 0
    опубликовать макет XML, который содержит объявление GLSurfaceView, и я могу вам помочь.
  • 0
    Вы имеете в виду androidmanifest.xml? потому что я рисую с openles в c ++ с вызовами jni
Показать ещё 1 комментарий
Теги:
kindle

1 ответ

1
Лучший ответ

возможные решения:

  1. попробуйте это в методе onCreate():

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

    обратите внимание, что, по моему опыту, у Kindle Fire есть некоторые странные проблемы с некоторыми представлениями, когда они используются во время выполнения этого кода, поэтому, даже если он работает, проведите некоторое расширенное тестирование.

  2. попробуйте установить манифест, чтобы иметь несколько флагов для configChanges, но я не тестировал его, и у меня больше нет огня.

  • 0
    это флаги для изменений конфигурации действий: android: configChanges = "mcc | mnc | locale | сенсорный экран | клавиатура | клавиатура скрытая | навигация | ориентация | screenLayout | fontScale | uiMode"
  • 0
    я думаю, что решение 1 сработало в тестировании, спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню