片段在 PictureTake 上分离

Fragment getting Detached onPictureTake

我有一个 activity 并且里面有一个片段,片段中包含一个自定义相机,所以相机的所有编码都是在片段中完成的,但是拍照是从 activity.

private void takePicture() {

    if (CameraFragment.mIsSafeToTakePhoto) {
        camFrag.setSafeToTakePhoto(false);

        //CameraFragment.mOrientationListener.rememberOrientation();

        // Shutter callback occurs after the image is captured. This can
        // be used to trigger a sound to let the user know that image is taken
        Camera.ShutterCallback shutterCallback = null;

        // Raw callback occurs when the raw image data is available
        Camera.PictureCallback raw = null;

        // postView callback occurs when a scaled, fully processed
        // postView image is available.
        Camera.PictureCallback postView = null;

        // jpeg callback occurs when the compressed image is available
        CameraFragment.mCamera.takePicture(shutterCallback, raw, postView, camFrag);
    }
}

拍照是图书馆的方法 现在,

问题是,拍照之后。 OnPictureTake 被调用,并且在这个阶段片段从 activity 分离因此 getActivity 返回 null,替代那个,如果显式定义 activity,它给出一个错误,片段没有附加到activity.

以下是拍照代码

@Override
public void onPictureTaken(byte[] data, Camera camera) {
      rotation = getPhotoRotation();
    CameraModel cameraModel = new CameraModel();
    cameraModel.setCameraData(data, rotation, mImageParameters.createCopy());


    setSafeToTakePhoto(true);
}

这里的cameraModel是DATA的Getter和Setter。

我已经通过在父 activity 而不是片段中实现 Camer.PictureCallback 解决了我的问题。