2012-01-13 2 views
2

나는 Activity가 있고 나는 "R.layout.main.xml"으로 활동의 내용보기를 설정했다. 그리고 나는 OpenGL을 사용하여 만든 애니메이션을 포함하고있는 다른 클래스를 가지고있다. 이제 Activity의 백그라운드에서이 애니메이션을 사용해야합니다.활동에서 GlSurfaceview 사용

코드는 다음과

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.main_pixie); 

    mGLView = new ClearGLSurfaceView(this); 
    setContentView(mGLView); 
} 

비슷하지만 내 응용 프로그램은 ..How 내가이 문제를 해결 할 수 있습니다 충돌한다.

답변

3

두 번째로 setContentView()으로 전화를 걸면 처음 설정 한 것을 바꿔 배경 만 남겨 둡니다. 크래시는 주 레이아웃의 요소에 의존하므로 제거됩니다.

setContentView()을 두 번 호출하는 대신 GLSurfaceView을 주 레이아웃에 포함해야합니다. 다음은이 작업을 수행 할 수있는 방법의 예는 다음과 같습니다

<?xml version="1.0" encoding="UTF-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent> 
    <your.application.package.ClearGLSurfaceView 
     android:layout_width="match_parent" 
     android:layout_width="match_parent"/> 
    <!--put the rest of your layout here, i.e the contents of the original R.layout.main_pixie--> 
</FrameLayout> 

이 그럼 당신은 main_pixie_new (평소와 같이 onCreate() 위의 XML을 참조하여이 레이아웃을로드 할 수 있습니다, 난 그냥 그것을 가능한 한 명확로 물건을 유지하기 위해 그 이름을 준) :

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.main_pixie_new); 
} 
관련 문제