2016-03-07 4 views
0

У меня есть camerapreview, отображаемый на текстуре, который работает очень хорошо. Но я не могу замаскировать текстуру с круговой маской. Как только я использую маскировку, ничего не отображается. Разве это невозможно? Или есть другой способ?Android oval textureview

+0

Легко положить ImageView накладку над поверхностью просмотра и загрузки PNG с прозрачными областями, где они нужны. Делать это в OpenGL гораздо больше работы –

+0

Да, но мой фон не статичен - его анимированный градиент. –

+0

Вы накладываете текстуру предварительного просмотра на свою анимированную текстуру? Раскрывайте соответствующую часть вашего кода. Установка прозрачности в OpenGL может быть сложной. –

ответ

0

Вы должны использовать API SurfaceTexture.

  1. делают кадры из камеры в SurfaceTexture созданного вручную
  2. сделать рамку в surfaceTexture на экран. Во время рисования вы используете конкретный массив вершинных вершин для реализации круглых углов.

Здесь очень полезная статья с исходным кодом на github.

https://medium.com/@fabrantes/rounded-video-corners-on-android-3467841cc1b

+0

Это должен быть комментарий, а не ответ. Если это дублированный вопрос, тогда [проголосовать за закрытие] (http://stackoverflow.com/help/privileges/close-questions) как таковой и/или оставить комментарий после того, как вы [заработаете] (http: //meta.stackoverflow .com/q/146472) достаточно [репутации] (http://stackoverflow.com/help/whats-reputation). Если вопрос не является дубликатом, то адаптируйте ответ на этот конкретный вопрос. –

Смежные вопросы