首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nexus 4相机不开

Nexus 4相机不开
EN

Stack Overflow用户
提问于 2013-10-29 04:18:05
回答 1查看 270关注 0票数 0

目前,我正在构建一个应用程序,在这个应用程序中,我将打开一个由表面保护器拍摄的摄像机。它正在所有设备上工作,不包括nexus 4和其他nexus系列。我用下面的代码打开相机。

代码语言:javascript
复制
SurfaceHolder mHolder;
public Camera camera;
int mCameraId;

Preview(Context context) {
    super(context);

    mHolder = getHolder();
    mHolder.addCallback(this);
    mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}

public void surfaceCreated(SurfaceHolder holder) {
    camera = Camera.open();
    camera.setDisplayOrientation(90);

    try {
        if (camera != null) {
            camera.setPreviewDisplay(holder);

            camera.setPreviewCallback(new PreviewCallback() {

                public void onPreviewFrame(byte[] data, Camera arg1) {
                    FileOutputStream outStream = null;
                    try {
                        Log.d(TAG, "onPreviewFrame - wrote bytes: "
                                + data.length);
                    } finally {
                    }
                    Preview.this.invalidate();
                }
            });
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

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

public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
    Camera.Parameters parameters = camera.getParameters();
    parameters.setPreviewSize(w, h);
    camera.setParameters(parameters);
    camera.startPreview();
}

@Override
public void draw(Canvas canvas) {
    super.draw(canvas);
    Paint p = new Paint(Color.RED);
    Log.d(TAG, "draw");
    canvas.drawText("PREVIEW", canvas.getWidth() / 2,
            canvas.getHeight() / 2, p);
}

}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-29 07:14:47

试试下面的代码,这是我的工作

代码语言:javascript
复制
Camera.Parameters parameters = camera.getParameters();
    List<Camera.Size> sizes = parameters.getSupportedPreviewSizes();
    Camera.Size cs = sizes.get(0);
    parameters.setPreviewSize(cs.width, cs.height);
    // parameters.setPreviewSize(w, h);
    camera.setParameters(parameters);
    camera.startPreview();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19649576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档