2

大家好,我正在开发一个需要使用相机的应用程序,但我的代码遇到了这个问题:

无法访问 Camera 类型的封闭实例。必须在“this.preSize_ = new Camera(0,0);”行上使用 Camera 类型的封闭实例(例如 xnew A(),其中 x 是 Camera 的实例)来限定分配;有什么帮助吗?或建议?

private void setupCamera()
  {
    this.camera_ = Camera.open();
    Camera localCamera = this.camera_;
    localCamera.getClass();
    this.preSize_ =  new Camera.Size(0,0);
    Camera.Parameters localParameters = this.camera_.getParameters();
    Iterator<Camera.Size> localIterator1 = localParameters.getSupportedPreviewSizes().iterator();
    Camera.Size localSize2;
    do
    {
      if (!localIterator1.hasNext())
        break;
      localSize2 = (Camera.Size)localIterator1.next();
      this.preSize_ = localSize2;
    }
    while ((localSize2.width != this.previewWidth) && (localSize2.height != this.previewHeight));
    localParameters.setPreviewSize(this.preSize_.width, this.preSize_.height);
    Iterator<Camera.Size> localIterator2 = localParameters.getSupportedPictureSizes().iterator();
    Camera.Size localSize1;
    do
    {
      if (!localIterator2.hasNext())
        break;
      localSize1 = (Camera.Size)localIterator2.next();
      this.procSize_ = localSize1;
    }
    while ((localSize1.width != this.processWidth) && (localSize1.height != this.processHeight));
    localParameters.setPictureSize(this.procSize_.width, this.procSize_.height);
    this.camera_.setParameters(localParameters);
    this.camera_.setDisplayOrientation(90);
    try
    {
      this.camera_.setPreviewDisplay(this.surfaceHolder_);
      this.camera_.startPreview();
      return;
    }
    catch (Exception localException)
    {
      while (true)
        localException.printStackTrace();
    }
  }
4

1 回答 1

3

Size类是Camera的一个非静态类。因此,您只能从 Camera 类的封闭实例创建它。像这样:

this.preSize_ = localCamera.new Size(0,0);
于 2013-04-18T11:05:45.210 回答