15

チュートリアルから派生したコード

Android システム用のOpenGL-ES 2.0を開始しています。次のコードを取得しました: http://developer.android.com/training/graphics/opengl/environment.html#renderer

public class MyRenderer implements GLSurfaceView.Renderer {
    public void onSurfaceCreated(GL10 unused, EGLConfig config) {
        GLES20.glClearColor(0.5f, 0.5f, 0.5f, 1.0f);
    }

    public void onDrawFrame(GL10 unused) {
        GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
    }

    public void onSurfaceChanged(GL10 unused, int width, int height) {
        GLES20.glViewport(0, 0, width, height);
    }
}

次のエラーが表示されます

Gradle: エラー: MyRenderer は抽象ではなく、Renderer の抽象メソッド onSurfaceCreated(GL10,EGLConfig) をオーバーライドしません

誰も続行方法を知っていますか?MyRendererに渡すためにクラスを使用する必要があるGLSurfaceViewため、単純に抽象化を宣言することは実行可能な解決策ではありません。誰かが私の問題に光を当てることができますか?

4

1 に答える 1

46

問題を発見!

インポートの間違ったバージョンは次のようになりました

import android.opengl.GLES20;
import android.opengl.GLSurfaceView;
import android.opengl.EGLConfig;

import javax.microedition.khronos.opengles.GL10;

しかし、図書館からGLSurfaceView.Renderer欲しかったEGLConfigjavax

次のコードは、インポートの正しいバージョンです

import android.opengl.GLES20;
import android.opengl.GLSurfaceView;

import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;

インターフェイスの実装を見て、これを発見しました

public static interface Renderer {
    void onSurfaceCreated(javax.microedition.khronos.opengles.GL10 gl10, javax.microedition.khronos.egl.EGLConfig eglConfig);

    void onSurfaceChanged(javax.microedition.khronos.opengles.GL10 gl10, int i, int i1);

    void onDrawFrame(javax.microedition.khronos.opengles.GL10 gl10);
}
于 2013-09-01T00:21:06.397 に答える