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

时间:2017-01-19 13:49:18

标签: android android-layout android-bitmap

我的应用程序中有一个相对布局,我试图截取屏幕截图。问题是它中有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);

这就是结果:

enter image description here

XML代码太大而无法共享,有一个相对布局即可截屏(在代码中,它的'rl')。然后有一个FrameLayout,然后是两个LinearLayouts,一些ImageViews然后是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" />

知道会导致这件事发生的原因吗?

1 个答案:

答案 0 :(得分:0)

到目前为止,我已经能够弄清楚bug必须与我正在使用的库有关。所以我试图想出一些其他方法来创建圆形图像,我从Waza_Be找到了这个答案:

https://stackoverflow.com/a/14180142/6148510

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