Я делаю следующее, чтобы получить растровое изображение, которое было установлено на GLSurfaceView
объекта:Как получить растровое изображение из GLSurfaceView
glView.setDrawingCacheEnabled(true);
glView.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
glView.layout(0, 0, glView.getMeasuredWidth(), glView.getMeasuredHeight());
glView.buildDrawingCache(true);
Bitmap tmpbm = Bitmap.createBitmap(glView.getDrawingCache());
glView.setDrawingCacheEnabled(false);
Но glView.getDrawingCache()
возвращается мне null
в вышеуказанном случае, и поэтому он сбой в строке Bitmap tmpbm = Bitmap.createBitmap(glView.getDrawingCache());
Почему я получаю null оттуда и как мне решить эту проблему? Кроме того, есть ли другой/лучший способ достичь моей цели? Любая помощь будет высоко оценен.
См http://stackoverflow.com/questions/27817577/android-take-screenshot-of-surface-view-shows-black-screen , Код в ответе от @Helmi должен работать до тех пор, пока вы вызываете его из 'onDrawFrame()'. – fadden