具有圆形图像视图的布局屏幕截图使图像被剪切

Screenshot of layout with circular image view makes the image cut

我的应用程序中有一个相对布局,我正在尝试对其进行屏幕截图。问题是它里面有 CircularImageView (https://github.com/lopspower/CircularImageView) 并且整个图像被转换并且不再裁剪到中心。

代码如下:

View rl = findViewById(R.id.toBeScreenShot);
rl.setDrawingCacheEnabled(true);
Bitmap screenshot = Bitmap.createBitmap(rl.getWidth(),rl.getHeight(), Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(screenshot);
rl.draw(c);
rl.setDrawingCacheEnabled(false);

这是结果:

XML 代码太大,无法分享,我截取了一个相对布局(在代码中,它的 'rl')。然后是 FrameLayout,然后是两个 LinearLayout,一些 ImageView,然后是 CircularImageView:

<com.mikhaellopez.circularimageview.CircularImageView
    android:id="@+id/userPicture"
    android:layout_width="@dimen/_120sdp"
    android:layout_height="@dimen/_130sdp"
    android:layout_gravity="center"
    app:civ_border="false" />

知道是什么导致了这件事发生吗?

到目前为止,我已经能够确定该错误一定与我正在使用的库有关。所以我试图想出一些其他方法来创建圆形图像,我从 Waza_Be:

找到了这个答案

经过一些简短的测试,这个圆形位图的屏幕截图工作正常。如果我的问题没有答案,我会将此解决方法标记为正确答案。