Android 开发随手笔记之使用摄像头拍照

2019-12-10 19:51:47于海丽
  • }  @Override 
  • public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {  } 
  • @Override  public void surfaceDestroyed(SurfaceHolder holder) { 
  • stopCamera();  } 
  • };  surfaceView.getHolder().addCallback(callback); 
  • button.setOnClickListener(new View.OnClickListener() {  @Override 
  • public void onClick(View v) {  camera.takePicture(null, null, new Camera.PictureCallback() { 
  • @Override  public void onPictureTaken(byte[] data, Camera camera) { 
  • try {  File filePath = new File(Environment.getExternalStorageDirectory(), "myCamera"); 
  • if(!filePath.exists()) {  filePath.mkdirs(); 
  • }  File fileName = new File(filePath, System.currentTimeMillis() + ".jpg"); 
  • fileName.createNewFile();  FileOutputStream fos = new FileOutputStream(fileName); 
  • fos.write(data);  fos.flush(); 
  • fos.close();  } catch (IOException e) { 
  • e.printStackTrace();  } 
  • }  }); 
  • }  }); 
  • }  public void startCamera(){ 
  • camera = Camera.open();  try { 
  • camera.setPreviewDisplay(surfaceView.getHolder());  camera.setDisplayOrientation(90); 
  • camera.startPreview();  } catch (IOException e) { 
  • e.printStackTrace();  } 
  • }  public void stopCamera(){ 
  • camera.stopPreview();  camera.release(); 
  • camera = null;  }