2011-09-12 2 views
0

안녕하세요 저는 배경이있는 부모 뷰 그룹을 가지고 있는데, 그 뷰 그룹의 일부로 OpenGLview를 포함하고 있습니다.GLSurfaceview 상단에 안드로이드에 투명 배경이있는 텍스트를 추가하는 방법은 무엇입니까?

내가 원하는 것은 투명한 배경을 가진 openglview가 필요하고 부모 배경을 볼 수 있기를 원하고 openglview 위에 텍스트를 쓸 수 있기를 원합니다. 텍스처를 사용하고 싶지 않습니다. .

나는으로는 true openglview zorderontop 설정이 옵션

  1. 을 시도했다. 그것은 내 텍스트가 glview 뒤에 가도록합니다. zorderontop을 true로 설정하지 않으면 배경이 검정색입니다.

  2. 투명하게 내 glview 또한 부모 뷰 그룹을 만드는 활동에 transluent 테마 설정.

  3. 레이아웃을 부 풀려는 시도가 있었는데 ContexThemeWrapper 클래스를 사용하여 glview의 테마를 동적으로 변경했습니다. 하지만 런타임에 setTheme()이 작동하지 않습니다. 매니페스트 파일에 테마 만 적용하면 작동합니다.

  4. 레이아웃 배경을 투명하게 적용해도 검정색 배경은 여전히 ​​작동하지 않습니다.

답변

3

ViewRoot로 작성된 한면과 GLSurfaceView 용으로 작성된 한면의 두 개의 개별 서피스로 그리는 것이 문제입니다. 이 서페이스는 SurfaceFlinger에 의해 합성되어 다른 하나의 위에 얹혀집니다. (기본적으로 ViewRoot 서페이스가 맨 위에 있고 GLSurfaceView 서페이스가 맨 아래에 있습니다.)

모든 뷰가 ViewRoot의 서페이스로 그려지기 때문에 OpenGL 서페이스 위에 또는 OpenGL 아래에 있어야합니다 표면.

텍스처를 사용하지 않으려면 이번에는 GLSurfaceView 대신 SurfaceView를 사용하여 세 번째 서페이스를 만들어 GLSurfaceView 위에 텍스트를 그립니다.

+0

안녕하세요, Matthew, 답장을 보내 주셔서 감사합니다. 나는이 접근법을 지금 시도하고 알릴 것이다. 다시 감사합니다. – srinivasan

+0

안녕하세요. so so so much .. 나는 그것을 해결했습니다. :) – srinivasan

+0

안녕하세요, 저는 이제 한 가지 더 많은 문제에 직면하고 있습니다. 나는 zorderontop (true)을 설정하는 glsurfaceview를 가지고있다. (becoz 나는 정상적인 view의 꼭대기에서 surfaceview를 필요로한다.) 인스턴트 메신저 scrollview 및 화면 맨 위에 대시 보드 레이아웃을 화면에있는 데있다. 내가 glsurfaceview를 스크롤하면 glsurfaceview 위에 움직입니다. 너 좀 도와 줄 수있어? – srinivasan

관련 문제