0

次のコードを使用して、GLSurfaceViewをJPEGにレンダリングしようとしています。

FileOutputStream image = FileIO.getInstance().writeFile("racesow/test" + this.frameNum +" .jpg"); // creates an ouputstream in external storage directory
Bitmap bitmap = Bitmap.createBitmap(640, 480, Bitmap.Config.ARGB_8888); 
Canvas canvas = new Canvas(bitmap);
this.game.glView.draw(canvas); // glView is the GLSurfaceView
bitmap.compress(Bitmap.CompressFormat.JPEG, 85, image);
image.flush();
image.close();

シーン全体がサーフェスビューにレンダリングされた後、このコードを実行しています。画像は作成中ですが、すべて黒です。何か案は?

4

1 に答える 1

1

これは実装されていません(SurfaceView.draw'1GLSurfaceView)。OpenGLの使用中にスクリーンショットを撮るには特別な処理が必要ですが、drawメソッドはでオーバーライドされませんGLSurfaceView

ただし、これはオープンクラスであるため、そこから派生し、カスタムコードを使用drawして独自の実装を追加して、スクリーンショットを撮ることができます。またはあなたに最も適したものは何でも。

于 2012-04-22T04:39:02.737 に答える