次のコードは Android 2.3 以前のバージョンで動作しますが、HoneyComb で動作しない理由がわかりません。UI には 3 つのボタンがあります: btnTakePic、btnDiscard、btnSave:
if(v.getId()==btnTakePic.getId()){
Log.v("Camarita", "BtnTake inicia");
if(cameraPreview){
callback = new PictureCallback() {
@Override
public void onPictureTaken(byte[] data, Camera camera) {
dataTemp=new byte[data.length];
System.arraycopy(data,0,dataTemp , 0, data.length);
}
};
mCamera.takePicture(null, null, callback);
callback=null;
cameraPreview=false;
}else{
//NOTHING
}
}
btnDiscard 配列 dataTemp を消去し、Camera.startPreview() を呼び出します。btnSave は、dataTemp から画像を保存し、dataTemp を消去します。次に、Camera.startPreview() を呼び出します。