surfaceview 如何实现截图
答案:2 悬赏:50
解决时间 2021-02-20 21:45
- 提问者网友:控制庸俗
- 2021-02-20 15:11
我写了一个简单的surfaceview的游戏框架。开启一个线程,不停地绘制。现在我想需要一个当前画面的截图。查了半天 没什么资料。有大神帮忙吗? 请不要回答类似以下的代码: mainBoard.setDrawingCacheEnabled(true); mainBoard.buildDrawingCache(); Bitmap bitmap = mainBoard.getDrawingCache();这个对于普通的view 还是可以的。但是surfaceview不行。另外在Iteye上有一个美女写了一个,需要导入jar包,但是给的jar包导入进去 也没什么反应 运行的还报错。请问有没有什么好的解决方案。谢谢了
最佳答案
- 二级知识专家网友:不服输的倔强
- 2021-02-20 16:12
学习中。。。
全部回答
- 1楼网友:野性且迷人
- 2021-02-20 16:19
对于surfaceview使用builddrawingcache是不行的可以通过surfaceholder来变通地截屏你在线程里面是否使用下面的方式不停地绘图canvas = mholder.lockcanvas(); if (canvas != null) { 把surfaceview的内容绘制到canvas 上 surfaceview.dodraw(canvas); mholder.unlockcanvasandpost(canvas);}有了这一点应该就比较好理解了,上面的canvas其实是绘制到屏幕上的,可以使用一个bitmap创建一个canvas,然后把surfaceview绘制到这个canvas上就行了bitmap bitmap = bitmap.createbitmap(getwidth(), getheight(), bitmap.config.argb_8888); canvas bitcanvas = new canvas(bitmap); surfaceview.dodraw(bitcanvas);
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯