具有圆形图像视图的布局屏幕截图使图像被剪切
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:
找到了这个答案
经过一些简短的测试,这个圆形位图的屏幕截图工作正常。如果我的问题没有答案,我会将此解决方法标记为正确答案。
我的应用程序中有一个相对布局,我正在尝试对其进行屏幕截图。问题是它里面有 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:
找到了这个答案经过一些简短的测试,这个圆形位图的屏幕截图工作正常。如果我的问题没有答案,我会将此解决方法标记为正确答案。