lixplor / android-Q-A

🐞 android related questions and answers
0 stars 0 forks source link

SurfaceView如何截图 #83

Closed lixplor closed 7 years ago

lixplor commented 7 years ago

SurfaceView调用getDrawingCache()只能得到纯黑的图片, 无法获取内容

lixplor commented 7 years ago

SurfaceView无法像普通View一样通过getDrawingCache()方法获取截图, 因为SurfaceView的内容是保存在缓冲区的

解决方法:

  1. 如果是使用canvas绘制内容, 则需要创建一个额外的canvas对象和一个和画布一样尺寸的bitmap对象来保存绘制内容, 创建该额外canvas时将bitmap传入. 每次绘制时, surfaceHolder得到的canvas进行绘制显示, 额外的canvas对象也进行绘制用于保存内容. 要获取截图时直接使用该bitmap