自定义视图的Android屏幕截图会产生黑色图像

时间:2017-03-11 06:21:41

标签: android

我有一个CameraSourcePreview类,它扩展了ViewGroup。

public class CameraSourcePreview extends ViewGroup

此自定义视图用于以下XML:

<LinearLayout
    android:id="@+id/photo_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="0.55">

        <com.google.android.gms.samples.vision.face.facetracker.ui.camera.CameraSourcePreview
            android:id="@+id/preview"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <com.google.android.gms.samples.vision.face.facetracker.ui.camera.GraphicOverlay
                android:id="@+id/face_overlay"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />

        </com.google.android.gms.samples.vision.face.facetracker.ui.camera.CameraSourcePreview>

</LinearLayout>

我正在尝试做的是制作LinearLayout的截图:

 View photoLayout = (View) findViewById(R.id.photo_layout);
                    photoLayout.setDrawingCacheEnabled(true);
                    photoLayout.buildDrawingCache(true);

 Bitmap bitmap = Bitmap.createBitmap(photoLayout.getDrawingCache());
                    photoLayout.draw(new Canvas(bitmap));
                    photoLayout.setDrawingCacheEnabled(false);

                    try {
                        File myFile = new File(Environment.getExternalStorageDirectory().getAbsoluteFile(), "snap.png");
                        FileOutputStream out = new FileOutputStream(myFile);
                        bitmap.compress(Bitmap.CompressFormat.PNG, 90, out);
                        out.flush();
                        out.close();
                        Log.d(Values.CAMERA_TAG, "Saved picture to" + myFile.getAbsolutePath());
                    } catch (Exception e) {
                        e.printStackTrace();
                    }

问题是:屏幕截图已保存,但CameraSourcePreview视图始终为黑色。 GraphicOverlay被捕获得很好。

注意:CameraSourcePreview是实时相机视图。 GraphicOverlay在人脸上绘制图片(检测到时)。

0 个答案:

没有答案