【问题标题】:Android Camera Preview -- How to 'freeze' the camera?Android 相机预览 - 如何“冻结”相机?
【发布时间】:2010-11-16 23:04:43
【问题描述】:

我目前正在尝试构建一个 android 应用程序来拍照,我需要在给定事件(即拍摄的照片)上冻结相机预览并仅在另一个事件后重新启动它。

换句话说,我想要的是让视图显示相机看到的任何内容,直到冻结事件发生,然后冻结图像(即显示此事件发生时屏幕上的任何内容 - 就好像图片已拍摄),直到发生解冻事件。

现在,我目前正在使用带有 SurfaceHolder.Callback 的 SurfaceView 来执行此操作,并且我尝试使用 PreviewCallback 来冻结屏幕,但不幸的是,我找不到示例或教程,我真的卡在这一点上。

如果有人有关于如何完成这项工作的指南或一些指示,我将非常感谢您的帮助...

我将代码的相关部分粘贴在下面:

公共类 CustomCameraView 扩展 SurfaceView {

Camera camera;
SurfaceHolder previewHolder;

//Callback for the surfaceholder
SurfaceHolder.Callback surfaceHolderListener = new SurfaceHolder.Callback() {
    public void surfaceCreated(SurfaceHolder holder) {
        camera=Camera.open();

        try 
        {
            camera.setPreviewDisplay(previewHolder);
        }
        catch (Throwable t) {

        }
    }

    public void surfaceChanged(SurfaceHolder surfaceHolder, int format, int w, int h)
    {
        Parameters params = camera.getParameters();
        params.setPictureFormat(PixelFormat.JPEG);
            camera.setParameters(params);
            camera.startPreview();
    }

    public void surfaceDestroyed(SurfaceHolder arg0)
    {
        camera.stopPreview();
        camera.release();
    }
};
public CustomCameraView(Context ctx)
{
    super(ctx);

    previewHolder = this.getHolder();
        previewHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
        previewHolder.addCallback(surfaceHolderListener);
        setBackgroundColor(Color.TRANSPARENT);
}
public CustomCameraView(Context context, AttributeSet attrs)
{
    super(context, attrs);
}
protected void onDraw (Canvas canvas)
{
}
public void closeCamera()
{
    if(camera != null)
        camera.release();
}
public void dispatchDraw(Canvas c)
{
    super.dispatchDraw(c);
}

}

非常感谢您的帮助!

-比利

【问题讨论】:

    标签: android camera preview freeze image


    【解决方案1】:

    老问题,我知道,但为后代回答。您应该可以简单地调用

    camera.stopPreview();
    

    预览将冻结在您正在查看的任何内容上,直到您再次调用 startPreview()。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多