Ich initialisiere Engine mit der Auflösung 1000x1000 und möchte die ganze Szene in Datei speichern. Wenn ich Screenshots mit der ScreenCapture-Klasse mache, ist die maximale Auflösung des Bildes 800x480 (weil mein Gerät (htc desire) 800x480 ist und es unmöglich ist, mehr Pixel vom Bildschirm zu haben). Aber die Szene ist größer, vielleicht gibt es eine Möglichkeit, durch alle Pixel in der Szene zu iterieren und 1000x1000 Bild zu speichern?android andengine Screenshot der Szene
Ich habe den folgenden Code versucht Bild von RenderTexture zu speichern:
@Override
public Engine onCreateEngine(EngineOptions pEngineOptions)
{
return new Engine(pEngineOptions) {
private boolean mRenderTextureInitialized;
int r[];
private RenderTexture mRenderTextures;
@Override
public void onDrawFrame(final GLState pGLState) throws InterruptedException {
final boolean firstFrame = !this.mRenderTextureInitialized;
if(firstFrame) {
this.initRenderTextures(pGLState);
this.mRenderTextureInitialized = true;
}
this.mRenderTextures.begin(pGLState);
super.onDrawFrame(pGLState);
this.mRenderTextures.end(pGLState);
if (needToSave)
{
needToSave = false;
final String location = SAVED_PATH + "/Screen_" + System.currentTimeMillis() + ".png";
FSHelper.saveBitmapToFile(mRenderTextures.getBitmap(pGLState), location);
}
}
private void initRenderTextures(final GLState pGLState) {
final int surfaceWidth = this.mCamera.getSurfaceWidth();
final int surfaceHeight = this.mCamera.getSurfaceHeight();
this.mRenderTextures = new RenderTexture(EnchantActivity.this.getTextureManager(), surfaceWidth, surfaceHeight);
this.mRenderTextures.init(pGLState);
}
};
}
Ich habe dieses Beispiel versucht, aber kann nicht verstehen, wie Sie die ganze Szene durch Drücken der Taste speichern. Es gibt eine getBitmap (GLState), ich habe versucht, GLState zu speichern und Bitmap von RenderTexture in die Datei zu schreiben. – dilix