Android 截屏在surfaceview上失败的问题

来源:互联网 发布:js混淆加密压缩 编辑:程序博客网 时间:2024/05/12 13:31

项目中surfaceview,为了要透明效果不得不设置zorder。这个时候截屏 只能截到surfaceview以外的东西。

于是多加了一步操作

1、截出原有部分

2、画出surfaceview部分

3、合成为一张图

代码:

1、Bitmap shareScreen = PrintScreen.takeScreenShot(getActivity()); 

2、surfaceview添加一个方法把内容绘制到canvas输出bitmap

public Bitmap drawBitmap() {
   Bitmap bitmap = Bitmap.createBitmap(getWidth(), getHeight(), Bitmap.Config.ARGB_8888);
   Canvas canvas = new Canvas(bitmap);
   drawView(canvas);
   return bitmap;
}

3、合成

Canvas canvas = new Canvas(shareScreen);
canvas.drawBitmap(seek.drawBitmap(), 0, seek.getTopPx(), new Paint());


seek.getTopPx() 是为了计算位置,我的就是centerY - radius

0 0
原创粉丝点击