}
@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;
}
}