使用Camera类(14)

 setContentView(R.layout.main);

          cameraView = (SurfaceView) this.findViewById(R.id.CameraView);

          surfaceHolder = cameraView.getHolder();

          surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

          surfaceHolder.addCallback(this);

          cameraView.setFocusable(true);

          cameraView.setFocusableInTouchMode(true);

          cameraView.setClickable(true);

          cameraView.setOnClickListener(this);

     } 

     public void onClick(View v) {

          camera.takePicture(null, null, this);

     }

随后是之前所描述的onPictureTaken方法。

public void onPictureTaken(byte[] data, Camera camera) {

     Uri imageFileUri = 

     getContentResolver().insert(Media.EXTERNAL_CONTENT_URI, 

new ContentValues());

    try {

          OutputStream imageFileOS = 

             getContentResolver().openOutputStream(imageFileUri);

          imageFileOS.write(data);

          imageFileOS.flush();

          imageFileOS.close();

    } catch (FileNotFoundException e) {

          Toast t = Toast.makeText(this,e.getMessage(), Toast.LENGTH_SHORT);

          t.show();

    } catch (IOException e) {

          Toast t = Toast.makeText(this,e.getMessage(), Toast.LENGTH_SHORT);

          t.show();

    }

    camera.startPreview();

}

读书导航