3

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

我想要做的是在 GLSurfaceView 准备就绪时显示一个简单的 PNG(带有轻微的动画)。准备好渲染后,我想拆除启动画面。

这样做的正确方法是什么?我已经尝试过 ViewFlipper、ViewSwitcher 和其他一些东西来在我的 R.layout.main 视图和我的 GLSurfaceView 之间切换,但我似乎无法做到正确。

有任何想法吗?

4

2 回答 2

4

步骤#1:让你GLSurfaceView成为android:visibility="invisible"你的布局 XML

步骤#2:把它GLSurfaceView放在一个里面FrameLayout

步骤#3:添加一个ImageView相同的另一个孩子FrameLayout

步骤#4:当GLSurfaceView准备就绪时,让ImageView它们不可见,让GLSurfaceView它们可见

于 2010-01-21T19:36:36.317 回答
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();在加载所有对象、纹理等后调用...

于 2012-02-26T07:44:30.950 回答