相关疑难解决方法(0)

捕获GLSurfaceView的屏幕到位图

我需要能够GLSurfaceView在特定时刻捕捉到某个时刻的图像.我有以下代码:

relative.setDrawingCacheEnabled(true);
screenshot = Bitmap.createBitmap(relative.getDrawingCache());
relative.setDrawingCacheEnabled(false);
Log.v(TAG, "Screenshot height: " + screenshot.getHeight());
image.setImageBitmap(screenshot); 
Run Code Online (Sandbox Code Playgroud)

GLSurfaceView包含内的RelativeLayout,但我也尝试它直接使用GLSurfaceView,试图捕捉图像.有了这个,我认为屏幕捕获透明图像,即没有任何东西.任何帮助将不胜感激.

java android screen-capture glsurfaceview

33
推荐指数
2
解决办法
2万
查看次数

Android OpenGL ES应用程序的屏幕截图

我有一个基本的openGL ES 20应用程序在GLSurfaceView上运行,该应用程序已添加:

    GLSurfaceView view = new GLSurfaceView(this);
    view.setRenderer(new OpenGLRenderer());
    setContentView(view);
Run Code Online (Sandbox Code Playgroud)

基本上我正在尝试使用以下方法获取屏幕截图:

private static Bitmap getScreenshot(View v)
    {
        Bitmap b = Bitmap.createBitmap(v.getWidth(), v.getHeight(),
                Bitmap.Config.ARGB_8888);
        Canvas c = new Canvas(b);
        v.draw(c);
        return b;
    }
Run Code Online (Sandbox Code Playgroud)

但似乎位图是透明的.我传递的观点是:

View content = m_rootActivity.getWindow().getDecorView().getRootView();
Run Code Online (Sandbox Code Playgroud)

任何人都有一个关于如何在openGL ES上获取屏幕截图的解决方案,而无需使用我在其他解决方案中看到的DrawFrame方法.

也许传递渲染器的参考?任何帮助,将不胜感激.

更新:我正在探索从onDrawFrame渲染位图(显示黑屏,同时捕获GLSurfaceView的截图)

但是,我想知道是否有更好的解决方案,因为我无法访问渲染器和surfaceview.我可以传递他们的参考,但想要一个解决方案,我们可以像前面提到的那样捕获整个视图.

android screenshot opengl-es-2.0

2
推荐指数
1
解决办法
2275
查看次数