Android使用camera實現拍照後停留在預覽介面的問題
阿新 • • 發佈:2019-02-03
camera實現拍照的程式碼:
/** * 開始拍照 */ public void startCapture() { if (null != camera) { camera.takePicture(null, null, pictureCallback); } } private final Camera.PictureCallback pictureCallback = new Camera.PictureCallback() { @Override public void onPictureTaken(byte[] data, Camera camera) { // if (data != null) { //解析生成相機返回的圖片 try { File dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM); if (!dir.exists()) { dir.mkdirs(); } File mCaptureFile = new File(dir, System.currentTimeMillis() + ".jpg"); FileOutputStream fos = new FileOutputStream(mCaptureFile); fos.write(data); fos.close(); Toast.makeText(surfaceView.getContext(), "拍照成功", Toast.LENGTH_SHORT).show(); } catch (Exception e) { e.printStackTrace(); Toast.makeText(surfaceView.getContext(), "儲存相片失敗", Toast.LENGTH_SHORT).show(); } } else { Toast.makeText(surfaceView.getContext(), "拍照失敗,請重試", Toast.LENGTH_SHORT).show(); } } };
執行起來會發現一個問題就是拍照完成後停留在預覽介面,此時如果你不錄影是沒有問題的,但是如果你正在錄影停留在當前介面是不是很尷尬,一番查詢後只需要重新設定camera的引數就可以實現拍照完成後不預覽畫面,錄影一直在進行是不是很爽
Camera.Parameters params = camera.getParameters();
params.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
camera.setParameters(params);