是否可以在没有打开相机的情况下拍照?我尝试了意图,但它的开放相机,但我不想打开相机。我试过跟随
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(takePictureIntent, 1);
然后接收活动。但是如何打开相机?
答案 0 :(得分:7)
是的,可以使用SurfaceHolder.Callback接口。 和
@TargetApi(9)
public void surfaceCreated(SurfaceHolder holder){
Log.e(TAG, "surfaceCreated");
mCamera = Camera.open(CaptureCameraImage.cameraID);
}
public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
Log.e(TAG, "surfaceChanged");
if (mPreviewRunning){
mCamera.stopPreview();
}
try{
mCamera.setPreviewDisplay(holder);
}catch (Exception e){
// TODO Auto-generated catch block
e.printStackTrace();
}
mCamera.startPreview();
mPreviewRunning = true;
mCamera.takePicture(null, mPictureCallback, mPictureCallback);
}
public void surfaceDestroyed(SurfaceHolder holder) {
Log.e(TAG, "surfaceDestroyed");
//mCamera.stopPreview();
//mPreviewRunning = false;
//mCamera.release();
}
为此使用虚拟表面视图,以便您可以从背景拍摄照片。
像
SurfaceView dummy=new SurfaceView(context);
dummy.addCallback(this);
并对这个虚拟Surfaceview进行一些研究。