Как добавить текст поверх GLSurfaceview с прозрачным фоном в Android? - PullRequest
0 голосов
/ 12 сентября 2011

Привет, у меня есть родительская группа, которая имеет фон, содержит openglview как часть этой группы.

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

Я попробовал эту опцию,

  1. Установка openglview zorderontop как true .Это заставляет мой текст идти позади glview.Если я не делаю zorderontop true, фон будет черным.

  2. Установка прозрачной темы для действия, которое делает мой glview, а также для родительской группы просмотра чтобы стать прозрачным .

  3. Я попытался надуть макет, содержащий glview, и использовать класс ContexThemeWrapper для динамического изменения темы glview.Но setTheme () не работает во время выполнения.работает только применение темы в файле манифеста.

  4. Применение фонового макета к прозрачному также не работает, все еще черный фон.

1 Ответ

3 голосов
/ 12 сентября 2011

Проблема в том, что вы рисуете на двух отдельных поверхностях: одна поверхность, созданная ViewRoot, и одна поверхность, созданная для GLSurfaceView. Эти поверхности составлены SurfaceFlinger, один поверх другого. (По умолчанию поверхность ViewRoot будет сверху, а поверхность GLSurfaceView снизу.)

Поскольку все ваши виды отображаются на поверхности ViewRoot, все они должны находиться поверх поверхности OpenGL или под поверхностью OpenGL.

Если вы не хотите использовать текстуры, точка, ваш единственный выбор - создать третью поверхность, на этот раз с SurfaceView вместо GLSurfaceView, чтобы нарисовать ваш текст над GLSurfaceView.

...