我有一个在GLSurfaceView上使用OpenGL的应用程序。问题 是初始加载需要相当长的时间处理纹理和 做好准备。
我想要做的是显示一个简单的PNG(略带一点 动画)而GLSurfaceView正在准备中。一旦它 准备渲染,我想拆掉闪屏。
这样做的正确方法是什么?我试过ViewFlipper,ViewSwitcher 以及在我的R.layout.main视图之间切换的一堆其他东西 和我的GLSurfaceView,但我似乎无法做对。
有什么想法吗?
答案 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();
......