0
我初始化分辨率爲1000x1000的引擎,並希望將整個場景保存在文件中。 如果我使用ScreenCapture類截圖,圖片的最大分辨率是800x480(因爲我的設備(htc慾望)是800x480,並且屏幕上沒有更多像素是不可能的)。但場景更大,也許有一種方法可以遍歷場景中的所有像素並保存1000x1000的圖片?android andengine截圖場景
我試過下面的代碼從渲染紋理保存圖片:
@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);
}
};
}
我試過這個樣本,但不能瞭解如何通過按下按鈕整個場景保存。有一個getBitmap(GLState),我試圖保存GLState並將RenderTexture的位圖寫入文件。 – dilix 2012-04-13 14:00:43