【问题标题】:(Android) Camera Preview does not work in some devices(Android) 相机预览不适用于某些设备
【发布时间】:2014-07-01 10:08:15
【问题描述】:

这是相机预览的代码。我将此表面视图添加到框架布局中。

此代码在模拟器和我的手机(S2)上成功。然而,我的一些朋友说他们在使用这个应用程序时收到错误消息。他们使用索尼、S3、Note3。

拿手机调试太麻烦了。因此,我希望有人可以帮助我。谢谢。

class Preview extends SurfaceView implements SurfaceHolder.Callback {

SurfaceHolder mHolder;
public Camera camera;

Preview(Context context) {
    super(context);
    mHolder = getHolder();
    mHolder.addCallback(this);
    mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}

public void continues()
{
    camera.startPreview();
}

public void surfaceCreated(SurfaceHolder holder) {
     Camera.CameraInfo cameraInfo = new Camera.CameraInfo(); 
     int cameraCount = Camera.getNumberOfCameras(); 
    camera = Camera.open(cameraCount-1);

    camera.setDisplayOrientation(90);
    try {
        camera.setPreviewDisplay(holder);
    } 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/2, h/2);
    camera.setParameters(parameters);
    camera.startPreview();
}

}

【问题讨论】:

    标签: android camera


    【解决方案1】:

    你不能简单地写parameters.setPreviewSize(w/2, h/2)。相机仅接受支持的预览尺寸。您应该遍历列表并选择最佳的。

    在此处查看示例:Picture distorted with Camera and getOptimalPreviewSize

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-11
      • 2018-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-10
      • 2016-02-19
      • 1970-01-01
      相关资源
      最近更新 更多