天天看点

解决Android实现照相机程序时不能显示摄像头的问题

try {
				camera.setPreviewDisplay(surfaceHolder);
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			// 开始预览
			camera.startPreview();
           

上面两行代码不能放在初始化的Camera里面,需要放在surfaceChanged()和surfaceCreated()方法内!!

public void surfaceChanged(SurfaceHolder holder, int format, int width,
	    int height){
			try {
				camera.setPreviewDisplay(surfaceHolder);
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			// 开始预览
			camera.startPreview();
	   }
	   @Override
	   public void surfaceCreated(SurfaceHolder holder){
	    // surface被创建时打开摄像头
	    initCamera();
		try {
			camera.setPreviewDisplay(surfaceHolder);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		// 开始预览
		camera.startPreview();
	   }