我正在创建一个滤镜应用程序应用程序,我需要将cameraview渲染的图像与滤镜一起保存。最好的方法是什么?我有以下布局:
<FrameLayout
android:id="@+id/frameLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1.5">
<com.otaliastudios.cameraview.CameraView
android:id="@+id/camera_view"
android:layout_width="match_parent"
android:layout_height="606dp"
android:layout_weight="1"
android:adjustViewBounds="true"
android:keepScreenOn="true"
app:cameraFacing="front" >
</com.otaliastudios.cameraview.CameraView>
<com.gbcapps.camerafilter.OverlayView
android:id="@+id/overlay_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
CameraView渲染摄像机,而OverlayView是我制作的自定义视图,用于绘制滤镜。
我只需执行以下操作即可截取屏幕截图:
frameLayout.setDrawingCacheEnabled(true);
Bitmap bitmap = Bitmap.createBitmap(frameLayout.getDrawingCache());
frameLayout.setDrawingCacheEnabled(false);
但是问题是FrameLayout不会占据整个屏幕,并且我希望保存的图像是完整照片。而且无论如何它都行不通,因为我只有一个黑屏。