Ich habe eine Aktivität und ein Fragment darin, das Fragment enthält eine benutzerdefinierte Kamera darin, so dass die ganze Codierung für die Kamera in das Fragment getan wird, aber die Aufnahme des Bildes wird von der Aktivität aufgerufen.Fragment bekommen Freigegeben onPictureTake
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);
}
}
take Bild ist die Bibliothek Methode Nun
Das Problem ist, nach der Aufnahme. OnPictureTake wird aufgerufen, und in dieser Phase wird das Fragment von der Aktivität losgelöst, daher gibt getActivity null zurück, alternativ dazu wird das Fragment bei der expliziten Definition der Aktivität, die einen Fehler angibt, nicht an die Aktivität angehängt.
Folgendes ist der Code, um ein Bild aufzunehmen.
Das cameraModel hier ist der Getter und Setter für die Daten.