Отказ от ответственности: это странная проблема, которая возникает только в Kindle Fire (пока).
Используемые технологии: Android SDK, Eclipse, LibGDX.
У меня есть относительно простое приложение, работающее с LibGDX. Способ работы LibGDX заключается в наличии потока OpenGL, который будет вызывать Create() (один раз), а затем Render(). столько раз, сколько возможно (чтобы вы могли сделать свой рендер…).
Итак, когда вы инициализируете устройство, вызывается ваш метод «Create()», а затем, когда инициализируется поверхность OpenGL (все это происходит автоматически), начинает вызываться ваш Render().
Если контекст OpenGL потерян, уничтожен и т. д., ваш метод Resize(width,height) вызывается LibGDX.
Слишком далеко. Очень хорошо.
Теперь я столкнулся со странной проблемой с Kindle Fire, когда все выглядело на несколько пикселей смещенным или «обрезанным». Kindle Fire имеет «программную панель» в нижней части экрана (20 пикселей), которую нельзя скрыть или пропустить, что «нормально», поскольку на устройстве нет физических кнопок. Ожидается, что вы коснетесь этой мягкой панели и получите большую полосу, чтобы вернуться, вернуться домой и т. Д. Согласно Amazon, эту полосу нельзя удалить. (не на 100% ясно, но никто не нашел способ, не нарушающий правила Amazon). Единственное приложение, которое я видел, которое удаляет это, — это Amazon Video Players только для потокового видео из облака Amazon. Итак, как вы можете видеть, похоже, нет способа «навсегда» скрыть эту панель.
Так что, если полоса есть, ваше реальное состояние экрана — это не аппаратное разрешение 1024x600 (альбомная ориентация), а 1024x580. Поэтому я добавил логирование в свои методы, чтобы увидеть, что происходит, и был удивлен этим… (вспомните методы create(), render() и resize()):
12-23 15:17:04.119: I/myapp(19921): SCREEN HEIGHT AT CREATE(): 600
[snip other unrelated log stuff]
12-23 15:17:04.673: I/myapp(19921): SCREEN HEIGHT AT RENDER() LOOP: 600
[snip other unrelated log stuff]
12-23 15:17:04.705: I/myapp(19921): MyApp - Resize() Called.
12-23 15:17:04.705: I/myapp(19921): SCREEN HEIGHT AT RENDER() LOOP: 580
Таким образом, экран был «изменен» Kindle Fire «в какой-то момент».
Кто-нибудь сталкивался с чем-то подобным?
Это скриншот (обратите внимание на черную полосу сверху, я ее не добавлял!). Простите за размытость изображения, но это проект клиента и я не могу ничего "раскрывать".
Самое интересное начинается, когда иногда полосы не будет, а приложение будет выглядеть следующим образом (опять же, извините за размытость). Обратите внимание, что верхней панели нет…
При ближайшем рассмотрении обоих снимков можно сказать, что дна (которое должно быть одинаковым) нет. Kindle делает странные вещи.
Есть идеи?
Ресурсы изначально были упакованы как 1024x600, но мы изменили это (теперь 580) и предположим, что область просмотра теперь 1024x580, но мне интересно, нашел ли кто-нибудь лучший способ справиться с этой чепухой? :)
примечание: у нас есть android:theme="@android:style/Theme.NoTitleBar.Fullscreen" в манифесте. Ничего не делает.
Заранее спасибо.