【发布时间】: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();
}
}
【问题讨论】: