0

2 차원 게임을 만들기 위해 SurfaceView로 작업하여 효율적으로 배경 이미지를 넣을 사람을 모르겠습니다. 정적 이미지이기 때문에 각 프레임을 그리는 것을 피하고 싶습니다. 어떤 도움이 필요합니까?SurfaceView로 작업하는 배경 이미지

+0

android : background = "@ drawable/your_image"어때요? – cyanide

+0

SurfaceView는 불투명하므로 다른 유형의 SurfaceHolder 형식을 설정하지 않으면 뒤에 볼 수 없지만 응용 프로그램이 성능을 저하시키고 각 프레임을 배경으로 캔버스로 그릴 수 있습니다. –

답변

0

SurfaceView의 표면은 단일 레이어입니다. 캔버스를 잠글 때 그리기 영역을 줄이기 위해 더러운 직사각형을 지정할 수 있지만 모든 프레임 즉, 배경 및 모든 프레임을 직사각형으로 모두 그려야합니다.

기본 Z- 순서로 하나, "미디어"깊이에 하나씩 SurfaceViews 한 쌍을 사용할 수 있습니다. 그렇게하려면 SurfaceView.setZOrderMediaOverlay()을 사용하십시오. 레이어는 렌더링되기 전에 시스템에 의해 합성됩니다.

캔버스가 아닌 OpenGL ES를 사용하는 경우 일반적으로 매번 텍스처에서 배경을 다시 그리는 것이 더 효율적입니다. (HWC에 오버레이가 부족한 경우 SurfaceFlinger는 본질적으로 SurfaceFlinger가 수행하는 작업입니다.)

중복되는 표면을 여러 개 사용하는 예는 Grafika의 "다중 표면 테스트"를 참조하십시오.