当前位置: 代码迷 >> java >> 了解Android中Camera2Basic中camera2 API中的按钮单击
  详细解决方案

了解Android中Camera2Basic中camera2 API中的按钮单击

热度:74   发布时间:2023-08-02 11:15:03.0

我正在尝试了解camera2 api在Google Camera2Basic示例代码中的工作原理。 具体来说,“图片”按钮如何注册镜头?

在onCreateViewCreated中:

@Override
public void onViewCreated(final View view, Bundle savedInstanceState) {
    view.findViewById(R.id.picture).setOnClickListener(this);
    view.findViewById(R.id.info).setOnClickListener(this);
    mTextureView = (AutoFitTextureView) view.findViewById(R.id.texture);
}

所以setOnClickListener()注册了点击? 但是它到底是什么? 我看到是传递但我不明白发生了什么。

我通常做的是做一些事情,比如在onCreateView()设置一个按钮,并将其setOnClickListener()到某个动作,如下所示:

photoButton = (Button)v.findViewById(R.id.picture);
photoButton.setOnClickListener(new View.onSetClickListener() {
    @Override
    public void onClick(View v) {
        //some action
    }
});

在示例代码中也发生了同样的事情。 但是,它看起来有点不同,因为Camera2BasicFragment活动正在实现OnClickListener 因此,当onClickListener设置, this是考虑到说,本次活动将覆盖onClick方法。 因此,当单击该按钮时,将自动调用类中的onClick方法。

@Override
public void onClick(View view) {
    switch (view.getId()) {
        case R.id.picture: {
            takePicture();
            break;
        }
        case R.id.info: {
            Activity activity = getActivity();
            if (null != activity) {
                new AlertDialog.Builder(activity)
                        .setMessage(R.string.intro_message)
                        .setPositiveButton(android.R.string.ok, null)
                        .show();
            }
            break;
        }
    }
}
  相关解决方案