2010-01-21 18 views
3

我有一個在GLSurfaceView上使用OpenGL的應用程序。 的問題在於初始加載需要花費相當長的時間處理紋理,並且準備就緒。創建一個合適的Android Splash/Loading屏幕

我想要做的是在GLSurfaceView準備就緒時顯示一個簡單的PNG(帶有輕微的 動畫)。只要 準備好渲染,我想拆除啓動畫面。

這樣做的正確方法是什麼?我試過ViewFlipper,ViewSwitcher 和一堆其他的東西來切換我的R.layout.main視圖 和我的GLSurfaceView,但我似乎無法得到它的權利。

任何想法?

回答

4

第1步:請您GLSurfaceView在你的佈局XML android:visibility="invisible"

步驟2:把那個GLSurfaceView內部的FrameLayout

第3步:添加ImageView一樣FrameLayout的另一個孩子

第四步:當GLSurfaceView準備,使ImageView是不可見的,使GLSurfaceView可見

+0

我已經試過這樣做,但我必須做一些錯誤的,因爲每次我的GLSurfaceView添加到main.xml中,它嘗試運行我的活動時崩潰。你有可以指向我的樣本或參考鏈接嗎? – cjserio 2010-01-23 15:30:56

+3

其實,我能夠得到這個工作,但問題是渲染器不醒來,並創建它的表面,如果視圖是不可見的... – cjserio 2010-01-23 17:05:53

+1

這是行不通的,因爲surfaceview沒有被調用,因爲它的不可見 – Guy 2012-01-25 06:18:05

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

好主意,謝謝! – 2012-10-25 04:01:27