在android中拍照

use*_*281 1 android android-camera android-camera-intent

是否可以拍摄开放式相机?我尝试了意图,但它的开放相机,但我不想打开相机.我试过跟随

Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(takePictureIntent, 1);
Run Code Online (Sandbox Code Playgroud)

然后接收活动.但是如何打开相机?

kir*_*hra 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();
    }
Run Code Online (Sandbox Code Playgroud)

为此使用虚拟表面视图,以便您可以从背景拍照.

喜欢

 SurfaceView dummy=new SurfaceView(context);
  dummy.addCallback(this);
Run Code Online (Sandbox Code Playgroud)

并对这个虚拟Surfaceview做一些研究工作.