学无先后,达者为师

网站首页 编程语言 正文

Android 截屏在surfaceview上失败的问题

作者:Kevin4ch 更新时间: 2022-03-14 编程语言

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

原文链接:https://blog.csdn.net/u013183495/article/details/50600708

栏目分类
最近更新