2013-10-29 5 views
1

내 앱의 경우 Fragment Activity 내 스 와이프 가능 조각 중 하나에 GLSurfaceView를 추가하려고합니다. 나는 그들이 다음과 같은 코드를 시도하도록 이끌어주는 평범한 관점과 똑같이 일했다고 생각했다.android.app.Fragment 내에서 OpenGL 사용

public override View OnCreateView(LayoutInflater inflater, 
            ViewGroup container, 
            Bundle savedInstanceState) 
{ 
    rootView = 
     inflater.Inflate(Resource.Layout.VisualisationFragment, container, false); 

    var fragmentLayout = 
     rootView.FindViewById<RelativeLayout>(Resource.Id.fragmentLayout); 

    surfaceView = new GLSurfaceView(this.Activity.BaseContext); 
    fragmentLayout.AddView(surfaceView); 

    return rootView; 
} 

코드는 잘 컴파일 나는 예외없이, 어딘가에 rootView가 반환 된 후, 나는 '강제 닫기'경고를 얻을 수있는 시점까지 코드를 단계별로 할 때 잘 보인다. GLSurface보기는 맨 위의 제목과 맨 아래의 단추를 제외하고 대부분의 화면을 차지합니다. 내 매니페스트에 OpenGL을 사용한다고 선언했는데 다른 설정이 누락 되었습니까?

내 질문 :

이 조각 FragmentActivity 내부 및 내부 OpenGL을 을 사용할 수 있습니다, 어떻게 내 응용 프로그램이 폭발하지 않고 내 rootView 내 서피스 뷰 SurfaceView를 할당 할 그렇다면?

미리 감사드립니다.

+0

아쉽게도 불행한 용어 충돌에 대해 이야기합니다. 조각은 OpenGL에서 자체 의미를 가지므로이 질문의 절반은 횡설수설처럼 들립니다. –

+0

제목을 수정하여 조회수가 올라갈 수 있습니다. – dwerner

답변

0

좋아, 내가 일찍이 유용하다고 증명하기에는 너무 어리 석었기 때문에, 일찍 일을 거의하지 않았다.

렌더러는 Handler 속성을 구현할 수 있도록 IRenderer뿐만 아니라 Java.Lang.Object를 필요로하므로 IRenderer를 상속해야했습니다.

모든 스 와이프에서 GlSurfaceView를 파괴하고 다시 작성하면 너무 많은 처리 능력이 입증되어 OnSurfaceCreate 및 OnSurfaceDestroy 메소드가 비어있는 경우에도 패널간에 일관되게 부드러운 스 와이프가 유지됩니다.