当我在相机上设置参数以修改它的不同方面,然后通过SurfaceView显示它时,它不会在应用程序启动后显示相机的预览。
@Override
public void onStart() {
super.onStart();
imageViewCapturedPhoto = (ImageView) getActivity().findViewById(R.id.imageViewCapturedPhoto);
imageViewCapturedPhoto.setVisibility(View.INVISIBLE);
surfaceView = (SurfaceView) getActivity().findViewById(R.id.surfaceView);
Matrix mirrorMatrix = new Matrix();
mirrorMatrix.preScale(-1.0f, 1.0f);
surfaceHolder = surfaceView.getHolder();
surfaceHolder.addCallback(this);
surfaceView.invalidate(); }
private void initCamera(int cameraWidth,int cameraHeight){
if(isPreview == false){
int numberOfCamerasInDevice = Camera.getNumberOfCameras();
camera = Camera.open(1);
surfaceView.invalidate();
try {
camera.setPreviewDisplay(surfaceHolder);
Camera.Parameters parameters = camera.getParameters();
Camera.Size size = getBestPreviewSize(cameraWidth, cameraHeight);
parameters.setPreviewSize(size.width, size.height);
camera.setParameters(parameters);
camera.setDisplayOrientation(90);
camera.startPreview();
isPreview = true;
} catch (Exception e) {
Log.i("myApp", "init_camera: " + e);
return;
}
如果我评论Try / Catch上设置的参数,相机会启动,但不会设置任何参数。
答案 0 :(得分:0)
final Camera.Parameters params = camera.getParameters();
final Size size = getOptimalSize();
params.setPreviewSize(size.width, size.height);
camera.setParameters(params);
不要使用getBestPreviewSize()尝试使用getOptimalSize()。