CWAC相机 - 不确定使用setCameraView()

时间:2014-02-17 22:55:01

标签: android commonsware-cwac

我正在使用CameraDemo-Layout作为如何使用相机片段正确地将按钮放在屏幕上的示例。

我正在尝试使用setCameraView()

  /**
   * Use this if you are overriding onCreateView() and are
   * inflating a layout containing your CameraView, to tell
   * the fragment the CameraView, so the fragment can help
   * manage it. You do not need to call this if you are
   * allowing the fragment to create its own CameraView
   * instance.
   * 
   * @param cameraView
   *          the CameraView from your inflated layout
   */
  protected void setCameraView(CameraView cameraView) {
    this.cameraView=cameraView;
  }

但是,我不能使用它,因为它受到保护。我正在使用CameraDemo - Layout作为示例。我有自己的CustomCam,CustomCamFragment和CustomCamHost。

在onCreateView的CustomCamFragment中我试图使用setCameraView,但它未定义。这是错误的还是我应该遵循“你不需要称之为......”的规则,因为我不太明白那部分?

1 个答案:

答案 0 :(得分:2)

  

但是,我不能使用它,因为它受到保护

它旨在从CameraFragment的子类调用,并且protected方法可用于子类。

  

我正在使用CameraDemo - Layout作为示例

您可以在the DemoCameraFragment in that samplesetCameraView()中看到onCreateView()的来电:

  @Override
  public View onCreateView(LayoutInflater inflater,
                           ViewGroup container,
                           Bundle savedInstanceState) {
    View content=inflater.inflate(R.layout.camera, container, false);
    CameraView cameraView=(CameraView)content.findViewById(R.id.camera);

    setCameraView(cameraView);

    return(content);
  }
  

我应该遵循“你不需要打电话给这个......”的规则,因为我不太明白那部分吗?

正在自己创建一个CameraView的实例(通过构造函数或布局膨胀),或者你不是。

如果你 创建了这样一个实例,你想要使用CameraFragment子类,那么该子类必须调用setCameraView(),传入CameraView实例。

如果您创建此类实例,而是允许CameraFragment的库存实现为您创建CameraView,则无需致电{{1部分原因是您没有设置setCameraView()