2016-03-02 2 views
0

Я хотел бы знать, как я могу деформировать (выполнить геометрическую коррекцию) весь пользовательский интерфейс Android для отображения проектора на изогнутый экран.Дефрагментация пользовательского интерфейса Android для изогнутого экрана

OpenGL - это базовая библиотека на платформе Android, и я знаю, что OpenGL ES позволяет сопоставлять каждый экранный фрейм как текстуру с пользовательской сеткой сетки.

Как я могу использовать это, чтобы преобразовать весь пользовательский интерфейс (во всех приложениях & тем), как видно на изображении ниже?

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

Если я не могу деформировать весь пользовательский интерфейс, я хотел бы, возможно, деформировать и отобразить каждый кадр с Android TV HDMI-In. SDK, похоже, не использует Open GL. Могу ли я переопределить его и сделать преобразование?

Warp screen

ответ

0

Google Картон делает что-то вроде этого, чтобы исправить искажения объектива. Google официально не опубликовал источник, но они выпустили двоичный файл под разрешительной лицензией Open Source, поэтому люди взяли на себя обязательство декомпилировать его.

Класс, в котором происходит большая часть магии, называется DistortionRenderer. В принципе, сцена превращается в буфер текстуры, который затем используется для текстуры DistortionMesh. Похоже, что для вас будет работать тот же метод, но вам придется придумать собственный способ создания сетки искажений, которая соответствует экрану проектора.

+0

Я пропустил то, что вы хотели сделать это для всех приложений, а не только для своих. –

+0

Спасибо за подсказку Кевина. Если я не могу деформировать весь пользовательский интерфейс, то, по крайней мере, приложение для передачи/захвата HDMI, которое поставляется вместе с моим медиаплеером Zidoo X9. Исходный код открыт, и я думаю, что это можно сделать в их классе [disHDMI()] (https://github.com/zidootech/zidoorecorder/blob/master/src/com/zidoo/recorder/tool/HdmiTool.java # L4). DistortionRenderer может быть неэффективным (не уверен, что он заставит меня отображать левый + правый дисплей). –

+0

Ваш отзыв заставил меня найти [BitmapMesh [(https://android.googlesource.com/platform/development/+/eclair-sholes-release/samples/ApiDemos/src/com/example/android/apis/graphics/BitmapMesh .java), который выглядит так, будто у него есть методы, чтобы заставить его работать. Мне интересно, могу ли я использовать это на инструменте HDMI In. Надеюсь, я смогу найти разработчика Android для работы над этим проектом для меня. Не найти правильные навыки на [Freelancer и других форумах] (https://www.freelancer.com/projects/Software-Architecture/Android-Warping-Custom-Geometric/#/details) Моя работа - это решение Architect.I читать/понимать, но не могу кодировать –