答え:
1) GLSurfaceView のソース コードから開始し、ファイルに GLTextureView.java という名前を付けます。
2) ヘッダーを次のように変更します:
GLTextureView extends TextureView implements SurfaceTextureListener
3) コンストラクターの名前を GLTextureView に変更します。init() メソッドからコードを削除します。
4) インポートを整理します。常に GLSurfaceView 以外のオプションを選択してください。
5) SurfaceHolder のすべてのインスタンスを見つけて、SurfaceTexture に変更します。
6) SurfaceTextureListener に実装されていないメソッドを追加します。各メソッドは次のようになります。
- onSurfaceTextureAvailable - surfaceCreated(表面)
- onSurfaceTextureDestroyed - surfaceDestroyed(表面)、(true を返す)
- onSurfaceTextureSizeChanged - surfaceChanged(表面、0、幅、高さ)
- onSurfaceTextureUpdated - requestRender()
7) getHolder() への呼び出しが行われている行が 1 行あるはずです。それを getSurfaceTexture() に変更します。
8) init() メソッドに、次の行を入れます。setSurfaceTextureListener(this)
次に、を追加しOnLayoutChangeListener
て呼び出しますsurfaceChanged(getSurfaceTexture(), 0, right - left, bottom - top)
。
GLTextureView
これで、GLSurfaceView コードを に置き換えて、その利点を享受できるはずですGLTextureView
。また、アプリがハードウェア アクセラレーションをサポートしていることと、Renderer がGLTextureView
.Renderer を拡張していることを確認してください。