项目中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