タイトルにかなり問題があると思います。camera.takePicture()を複数回使用すると、最後の写真のみが保存されます
基本的には、どのようなI`mがやろうとすると、このです:
takeFocusedPhoto("a");
doSomethingElse();
takeFocusedPhoto("b");
doSomethingElse();
takeFocusedPhoto("c");
doSomethingElse();
takeFocusedPhoto("d");
しかし、私のコードは、最後のものだけ(D.JPG)を保存するために管理。
doSomethingElseは、()(私は部屋内のすべての壁の写真を撮りたいactualy私の携帯電話スタンドするプラットフォームを回転させる機能です。
この問題を解決する簡単な方法はありますか?感謝I`dヘルプまたは提案のいずれかの種類
コード:
/** Takes photo with default settings */
public void takePhoto(){
camera.startPreview();
camera.takePicture(null, rawCallback, jpegCallback);
camera.stopPreview();
}
/** Takes photo using Auto Focus function */
public void takeFocusedPhoto(String name){
filename=name;
isAutoFocused=false;
camera.startPreview();
AutoFocusClbk afcb = new AutoFocusClbk();
camera.autoFocus(afcb);
if(isAutoFocused){
Log.d(TAG, "takeFocusedPhoto - AutoFocused");
}
else{
Log.d(TAG, "takeFocusedPhoto - NOT AutoFocused");
}
camera.takePicture(null, rawCallback, jpegCallback);
camera.stopPreview();
}
/** Releases the interface */
public void closeCamera(){
camera.release();
}
/** Shutter */
/*ShutterCallback shutterCallback = new ShutterCallback() {
public void onShutter() {
Log.d(TAG, "onShutter'd");
}
};*/
/** Handles data for raw picture */
PictureCallback rawCallback = new PictureCallback() {
public void onPictureTaken(byte[] data, Camera camera) {
Log.d(TAG, "onPictureTaken - RAW");
}
};
/** Handles data for jpeg picture */
PictureCallback jpegCallback = new PictureCallback() {
public void onPictureTaken(byte[] data, Camera camera) {
FileOutputStream outStream = null;
try {
//write the file to sdcard
outStream = new FileOutputStream(String.format("/sdcard/"+filename+".jpg"));
outStream.write(data);
outStream.close();
Log.d(TAG, "onPictureTaken - SUCCESS! - wrote bytes: " + data.length);
} catch (FileNotFoundException e) {
Log.d(TAG, "onPictureTaken - FAILURE - FileNotFound");
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
}
Log.d(TAG, "onPictureTaken - JPEG");
}
};
/** AutoFocus Callback */
private class AutoFocusClbk implements Camera.AutoFocusCallback{
public void onAutoFocus(boolean success, Camera camera){
isAutoFocused = success;
Log.d(TAG, "onAutoFocus - AutoFocused: "+success);
}
};
}
ありがとう、本当に役に立ちました:) – scana