拍摄适当的屏幕截图

时间:2018-11-05 13:23:43

标签: android canvas view screenshot hardware-acceleration

我想寻求帮助。我要截图。这是可行的,但是ImageView的圆角不会在所截取的屏幕截图上进行圆角处理(并且也会丢失高程阴影)。我用

imageView.setClipToOutline(true);

使其可以在手机上使用,但在屏幕截图上它们是矩形的。

这些是我的屏幕截图工具:

公共类ScreenShotUtils {

public static Bitmap screenShotFromCanvas(View view) {
    Bitmap bitmap = Bitmap.createBitmap(view.getWidth(),
            view.getHeight(), Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(bitmap);
    view.draw(canvas);
    return bitmap;
}

public static Bitmap screenShotFromDrawingCache(View view) {
    view.setDrawingCacheEnabled(true);
    view.buildDrawingCache();

    Bitmap bitmap = Bitmap.createBitmap(view.getDrawingCache());

    view.destroyDrawingCache();
    view.setDrawingCacheEnabled(false);

    return bitmap;
}

两种方法的结果相同。

但是我注意到,如果我关闭硬件加速功能,则其布局与屏幕截图相同。

截取屏幕截图后的样子: enter image description here

这应该是这样的: enter image description here

1 个答案:

答案 0 :(得分:0)

最后,我用MediaProjectionManager解决了我的问题。