나는 CameraView library을 사용하여 뷰 파인더를 보여 주며 스냅 사진을 촬영합니다. 두 개의 단추가 있습니다. 하나는보기를 여는 단추이고 다른 하나는보기를 닫는 단추입니다.카메라를 두 번째로 사용하면 검정색이 켜짐
두 버튼 true와 false 매개 변수로 다음과 같은 메소드를 호출 클릭
public void showCameraLayout(boolean show) {
cameraLoading.setVisibility(View.GONE);
cameraClick.setVisibility(View.VISIBLE);
ivGallery.setVisibility(View.VISIBLE);
if (show) {
showKeyboard(false);
if (ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.CAMERA)
== PackageManager.PERMISSION_GRANTED) {
if (mCameraView != null) {
mCameraView.addCallback(mCallback);
}
ViewGroup.LayoutParams params = cameraLayout.getLayoutParams();
params.height = messagesView.getWidth()/2;
cameraLayout.setLayoutParams(params);
mCameraView.start();
safeToTakePicture = true;
} else if (ActivityCompat.shouldShowRequestPermissionRationale(getActivity(),
Manifest.permission.CAMERA)) {
ConfirmationDialogFragment
.newInstance(R.string.camera_permission_confirmation,
new String[]{Manifest.permission.CAMERA},
REQUEST_CAMERA_PERMISSION,
R.string.camera_permission_not_granted)
.show(getActivity().getSupportFragmentManager(), FRAGMENT_DIALOG);
} else {
ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.CAMERA},
REQUEST_CAMERA_PERMISSION);
}
} else {
ViewGroup.LayoutParams params = cameraLayout.getLayoutParams();
params.height = 0;
cameraLayout.setLayoutParams(params);
if (mCameraView != null) mCameraView.stop();
}
}
문제는 cameraLayout 처음 열 때 나는 라이브 카메라를 볼 수 있다는 것입니다. 그러나 닫은 다음 다시 열면 검정색 화면이 나타납니다. 검은 화면이 표시되는 동안 스냅이 찍히면 이상한 것이 있습니다.
다음에 시작하기 전에'mCamera.release()'와 같은 첫 번째 릴리스 카메라를 사용한 후. – Kaushal28
@ Kaushal28 카메라 API가 아니며 CameraView 라이브러리를 통해 Camera2 API를 사용하고 있습니다. –