Android 2.2中的相机崩溃

Abh*_*nav 2 camera android android-2.2-froyo

我已经在Android SDK上测试了我的应用程序,从1.5到2.2,我的活动中的摄像头代码工作正常.在2.1的设备上运行它也有效.但同样的应用程序无法与HTC Desire和Nexus One上的2.2兼容,应用程序崩溃.有什么想法可能会发生吗?

我正在使用import android.hardware.Camera; .

在onCreate里面我有这个:

preview = (SurfaceView) findViewById(R.id.preview);
        previewHolder = preview.getHolder();
        previewHolder.addCallback(surfaceCallback);
        previewHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
Run Code Online (Sandbox Code Playgroud)

回调是

SurfaceHolder.Callback surfaceCallback = new SurfaceHolder.Callback() {

    @Override
    public void surfaceDestroyed(SurfaceHolder holder) {
        camera.stopPreview();
        camera.release();
        camera = null;
    }

    @Override
    public void surfaceCreated(SurfaceHolder holder) {
        camera = Camera.open();
        try {
            camera.setPreviewDisplay(previewHolder);
        } catch (Throwable t) {
            Log.e(TAG, "Exception in setPreviewDisplay", t);
            Toast.makeText(CameraActivity.this, t.getMessage(),
                    Toast.LENGTH_LONG).show();
        }
    }

    @Override
    public void surfaceChanged(SurfaceHolder holder, int format, int width,
            int height) {
        Camera.Parameters parameters = camera.getParameters();
        parameters.setPreviewSize(width, height);
        camera.setParameters(parameters);
        camera.startPreview();
    }
};
Run Code Online (Sandbox Code Playgroud)

Abh*_*nav 9

获得最佳相机尺寸后,需要设置相机的预览尺寸.以下是修复的详细信息和代码 -

http://code.google.com/p/android/issues/detail?id=7909

  • -1,请在这里发表答案,因为没有人会阅读你的长话题列表. (2认同)
  • upvoted仅仅是为了取消愚蠢的downvote. (2认同)