在surfaceview中截取捕获图像的屏幕截图

时间:2015-08-07 07:57:38

标签: android

我使用表面视图打开相机。

MainActivity中的Imageview。 当我点击imageview相机打开时,我在surfaceview中单击textview(Capture)将图像保存到内存中并设置为imageview。

在这两个动作之间,我从用户确认捕获的图像是否正常(确定或取消)。

如果用户单击“确定”,则捕获的图像将设置为imageview。 如果用户单击取消,相机将再次打开。

该确认屏幕显示捕获的图像和两个按钮(确定和取消)

我在表面视图中打开相机的代码

<...>

Surfaceview布局

public Object getAdapter(Class required) {}

如何从surfaceview获取捕获图像的整个视图?

请帮助解决这个问题......

1 个答案:

答案 0 :(得分:-1)

如果您想要获得所显示的SurfaceView像素的精确图像,可以使用以下方法:

/**
 * Take a screenshot of the view
 * @param view the view to capture
 * @return the bitmap representing the pixels of the given view
 */
@Nullable
public static Bitmap loadBitmapFromView(View view) {
    try {
        view.setDrawingCacheEnabled(true);
        Bitmap bitmap = Bitmap.createBitmap(view.getDrawingCache());
        view.setDrawingCacheEnabled(false);
        return bitmap;
    } catch (OutOfMemoryError error){
        TeadsLog.d(LOG_TAG, "Out of Memory while loadBitmapFromView");
        return null;
    }
}