下一个代码适用于 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()。