创建适当的Android启动画面/加载屏幕

时间:2010-01-21 18:58:07

标签: android opengl-es glsurfaceview

我有一个在GLSurfaceView上使用OpenGL的应用程序。问题 是初始加载需要相当长的时间处理纹理和 做好准备。

我想要做的是显示一个简单的PNG(略带一点 动画)而GLSurfaceView正在准备中。一旦它 准备渲染,我想拆掉闪屏。

这样做的正确方法是什么?我试过ViewFlipper,ViewSwitcher 以及在我的R.layout.main视图之间切换的一堆其他东西 和我的GLSurfaceView,但我似乎无法做对。

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

第1步:在布局XML中将GLSurfaceView设为android:visibility="invisible"

步骤2:将GLSurfaceView放在FrameLayout

步骤3:添加ImageView作为同一FrameLayout

的另一个孩子

步骤4:当GLSurfaceView准备好后,让ImageView不可见并使GLSurfaceView可见

答案 1 :(得分: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(); ......