Pobierz zrzut ekranu SurfaceView w Androidzie

W mojej aplikacji mam widok z niektórymi przyciskami i SurfaceView. Muszę zrobić zrzut ekranu tego widoku, ale zamiast SurfaceView jest tylko czarne pole. Próbuję rozwiązań, które znalazłem na stackoverflow, ale one nie działają dla mnie.

To jest mój kod, który zwykle robię na zrzutach ekranu:

File folder = new File(Environment.getExternalStorageDirectory().getPath() + "/folder");
if (!folder.exists()) {
    folder.mkdir();
}
String path = folder.getAbsolutePath() + "snapshot.png";
File file = new File(path);
file.createNewFile();

View view = this.findViewById(android.R.id.content).getRootView();
view.setDrawingCacheEnabled(true);
Bitmap drawingCache = view.getDrawingCache();
Bitmap bitmap = Bitmap.createBitmap(drawingCache);

FileOutputStream fos = null;
try {
    fos = new FileOutputStream(file);
    bitmap.compress(CompressFormat.PNG, 100, fos);
} finally {
    bitmap.recycle();
    view.setDrawingCacheEnabled(false);
    if (fos != null) {
        try {
            fos.close();
        } catch (IOException e) {
            Log.e(TAG, e.getMessage(), e);
        }
    }
}

Może ktoś może pomóc.

questionAnswers(0)

yourAnswerToTheQuestion