片段在 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 解决了我的问题。
我有一个 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 解决了我的问题。