android surface 截图
时间: 2023-07-22 08:27:38 浏览: 191
您可以使用以下代码来实现 Android SurfaceView 的截图:
``` java
// 获取你的 SurfaceView
SurfaceView surfaceView = (SurfaceView) findViewById(R.id.surfaceView);
// 获取 SurfaceHolder
SurfaceHolder holder = surfaceView.getHolder();
// 获取 Surface 的画布
Canvas canvas = holder.lockCanvas();
// 创建一个 Bitmap,大小为 Surface 的宽高
Bitmap bitmap = Bitmap.createBitmap(surfaceView.getWidth(), surfaceView.getHeight(), Bitmap.Config.ARGB_8888);
// 将 Surface 的画布绘制到 Bitmap 上
bitmap.copyPixelsFromBuffer(canvas.getBuffer());
// 释放 Surface 的画布
holder.unlockCanvasAndPost(canvas);
// 将 Bitmap 保存到本地文件中
try {
FileOutputStream fos = new FileOutputStream("/sdcard/screenshot.png");
bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
fos.flush();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
```
注意:您需要获取存储权限才能将 Bitmap 保存到本地文件中。
阅读全文