2016-06-24 5 views
2

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.

Antwort

1

Ich habe mein Problem gelöst, indem ich Camer.PictureCallback in der Parent-Aktivität statt im Fragment implementiere.

Verwandte Themen