在Android上设置参数时无法启动相机

时间:2014-07-11 09:13:02

标签: java android eclipse parameters camera

当我在相机上设置参数以修改它的不同方面,然后通过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上设置的参数,相机会启动,但不会设置任何参数。

1 个答案:

答案 0 :(得分:0)

final Camera.Parameters params = camera.getParameters();
final Size size = getOptimalSize();
params.setPreviewSize(size.width, size.height);
camera.setParameters(params);

不要使用getBestPreviewSize()尝试使用getOptimalSize()。