Dies ist, was ich für meine Teilchenstrahler tat: eine GLSurfaceView verlängern und machen Es ist Teil meines Layouts. Hinweis: Umsetzung der "ParticleRenderer" Klasse zu erreichen, was openGL Zeug Sie
My Custom Ansicht zu tun:
public class OpenGLView extends GLSurfaceView
{
//programmatic instantiation
public OpenGLView(Context context)
{
this(context, null);
}
//XML inflation/instantiation
public OpenGLView(Context context, AttributeSet attrs)
{
this(context, attrs, 0);
}
public OpenGLView(Context context, AttributeSet attrs, int defStyle)
{
super(context, attrs);
// Tell EGL to use a ES 2.0 Context
setEGLContextClientVersion(2);
// Set the renderer
setRenderer(new ParticleRenderer(context));
}
}
und im Layout ...
<com.hello.glworld.particlesystem.OpenGLView
android:id="@+id/visualizer"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
Der Partikel-Render ist einfach ... für einige Beispielcode, siehe: https://code.google.com/p/opengles-book-samples/source/browse/trunk/Android/Ch13_ParticleSystem/src/com/openglesbook/particlesystem/ParticleSystemRenderer.java
public class ParticleRenderer implements GLSurfaceView.Renderer
{
public ParticleRenderer(Context context)
{
mContext = context;
}
@Override
public void onDrawFrame(GL10 gl)
{
//DO STUFF
}
@Override
public void onSurfaceChanged(GL10 gl, int width, int height)
{
//DO STUFF
}
@Override
public void onSurfaceCreated(GL10 gl, EGLConfig config)
{
//DO STUFF
}
}
Danke! Auf SurfaceView jetzt lesen. Es fühlt sich an, als ob ich danach suche, aber ich kann nicht herausfinden, wie ich es tatsächlich mache. Ich kann SurfaceView in der Layout-XML-Datei einrichten. Und ich kann setContentView() setzen, um dieses XML-Layout zu verwenden. Aber ich kann nicht sehen, wie ich meine GLSurfaceView-Klasse dazu bringen kann, in die SurfaceView der XML-Layoutdatei zu zeichnen. – Espen
Oh, GLSurfaceView ist ein SurfaceView, also können Sie es einfach in Ihrem Layout verwenden, wo Sie SurfaceView verwenden. –