2010-01-21 2 views
3

GLSurfaceView에서 OpenGL을 사용하는 애플리케이션이 있습니다. 문제는 입니다. 초기로드에는 텍스처를 처리하는 데 꽤 많은 시간이 걸리고 일을 처리하는 데는 이 필요합니다.적절한 Android Splash/Loading 화면 만들기

GLSurfaceView가 준비되는 동안 간단한 PNG가 표시되도록하고 싶습니다 (약간의 애니메이션). 렌더링이 준비되면 바로 , 나는 스플래시 화면을 찢어 버리고 싶습니다.

어떻게해야할까요? 나는 ViewFlipper, ViewSwitcher 과 내 R.layout.main 뷰 과 내 GLSurfaceView 사이를 전환하는 다른 것들을 잔뜩 시도했으나 올바르게 할 수없는 것처럼 보입니다.

아이디어가 있으십니까?

답변

4

단계 # 1 :을 GLSurfaceView

단계 # 2 레이아웃 XML에서 android:visibility="invisible" 수 : 같은 FrameLayout의 또 다른 아이 같은 ImageView 추가 : 그 GLSurfaceView의 내부 FrameLayout

3 단계가 넣어

단계 # 4 : GLSurfaceView가 준비가되면 ImageView이 보이지 확인하고 GLSurfaceView가 볼 수 있도록

여기
+0

는이 일을하지만 때마다 내가 main.xml에에 GLSurfaceView를 추가하기 때문에 내가 뭔가 잘못하고 있어야합니다 내 활동을 실행하려고 할 때 충돌이 발생합니다. 나를 가리킬 수있는 샘플 또는 참조 링크가 있습니까? – cjserio

+3

사실,이 작업을 얻을 수 있었지만 문제는 뷰가 보이지 않을 때 렌더러가 깨어나서 표면을 생성하지 않는다는 것입니다. – cjserio

+1

표면 뷰가 호출되지 않아 보이지 않으므로 작동하지 않습니다. – Guy

3

내가이 상황을 극복하기 위해 무슨 짓을 ...

내가 그 이름을 따서 명명 사용자 지정 레이아웃 loader.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/selectLevelID" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/loader" 
    android:orientation="vertical" > 
</RelativeLayout> 

을 만들어 glSurfaceView

의 렌더러를 만드는 동안, 나는 이것을 사용
public GlRenderer(Context ctx) 
      { 
loader_dialog = new Dialog(context,android.R.style.Theme_Black_NoTitleBar_Fullscreen); 
loader_dialog.setContentView(R.layout.loader); 
loader_dialog.show() 
//do your initializations.... 
loader_dialog.dismiss(); 
} 

;

또는 기타 모든 오브젝트, 텍스쳐를로드 한 후 바로 loader_dialog.dismiss(); 전화 ... 그것은 내가 해봤

+0

좋은 아이디어, 고마워! –