Android 有什么方法可以在摄像机加载后收听吗?cwac摄像机

Android 有什么方法可以在摄像机加载后收听吗?cwac摄像机,android,camera,commonsware-cwac,Android,Camera,Commonsware Cwac,我有我的CWAC相机片段设置,一切都很好。我想做一些定制 我想在摄影机片段加载到其宿主活动/片段时显示一个ProgressBar 用户拍照后,我想在“拍照”按钮上再次显示一个进度条覆盖,这样他们就明白,在相机再次准备好之前,他们无法立即拍照 通过查看CWAC摄像机的文档,我没有发现任何支持这种回调的东西。这类事情甚至可以听吗?如果是这样的话,图书馆有没有一种我没有看到的简单方法 提前感谢你的帮助 我想在摄像机加载到活动/片段时显示一个进度条 我不知道“加载到活动/片段”是什么意思 用户拍照后,我

我有我的CWAC相机片段设置,一切都很好。我想做一些定制

  • 我想在摄影机片段加载到其宿主活动/片段时显示一个ProgressBar
  • 用户拍照后,我想在“拍照”按钮上再次显示一个进度条覆盖,这样他们就明白,在相机再次准备好之前,他们无法立即拍照
  • 通过查看CWAC摄像机的文档,我没有发现任何支持这种回调的东西。这类事情甚至可以听吗?如果是这样的话,图书馆有没有一种我没有看到的简单方法

    提前感谢你的帮助

    我想在摄像机加载到活动/片段时显示一个进度条

    我不知道“加载到活动/片段”是什么意思

    用户拍照后,我想在“拍照”按钮上再次显示一个进度条覆盖,这样他们就明白,在相机再次准备好之前,他们无法立即拍照

    您知道什么时候在调用
    takePicture()
    。通过创建自己的
    CameraHost
    实现或自己的
    SimpleCameraHost
    子类,可以知道何时对
    CameraHost
    调用
    saveImage()
    。您可以在这些时间执行
    ProgressBar
    工作。您可以在中看到这一点,其中我出于相同的目的禁用并重新启用了操作栏项

    我想在摄像机加载到活动/片段时显示一个进度条

    我不知道“加载到活动/片段”是什么意思

    用户拍照后,我想在“拍照”按钮上再次显示一个进度条覆盖,这样他们就明白,在相机再次准备好之前,他们无法立即拍照


    您知道什么时候在调用
    takePicture()
    。通过创建自己的
    CameraHost
    实现或自己的
    SimpleCameraHost
    子类,可以知道何时对
    CameraHost
    调用
    saveImage()
    。您可以在这些时间执行
    ProgressBar
    工作。您可以在中看到这一点,其中我出于同样的目的禁用并重新启用了操作栏项目。

    要在相机加载并开始预览时收到通知,请使用以下代码:

    public class MyCameraFragment extends CameraFragment {
    
        CameraView cameraView;
    
        Camera.PreviewCallback previewCallback = new Camera.PreviewCallback() {
            @Override
            public void onPreviewFrame(byte[] data, Camera camera) {
                // camera is "loaded" and first preview is sent to the screen
                // do whatever you want to do
            }
        };
    
        @Override
        public void onViewCreated(View view, Bundle savedInstanceState) {
            super.onViewCreated(view, savedInstanceState);
            cameraView = // code to find your CameraView
        }
    
        @Override
        public void onResume() {
            super.onResume();
            Camera camera = cameraView.getCamera();
            if (null != camera) {
                camera.setOneShotPreviewCallback(previewCallback);
            }
        }
    
        private void somehowRestartedCameraViewForWhateverReason() {
            if (null != cameraView) {
                cameraView.onResume(); // force it to restart
                Camera camera = cameraView.getCamera();
                if (null != camera) {
                    camera.setOneShotPreviewCallback(previewCallback);
                }
            }
        }
    }
    
    我使用这段代码来更新用户界面,这样flash按钮只在支持摄像头时出现:

    camera.getParameters().getSupportedFlashModes()
    
    返回非空列表,大小大于0。通常前置摄像头没有闪光灯,但谁知道呢

    如果您想切换摄像头,请在此处查看我的其他答案:

    要在相机加载并开始预览时收到通知,请使用以下代码:

    public class MyCameraFragment extends CameraFragment {
    
        CameraView cameraView;
    
        Camera.PreviewCallback previewCallback = new Camera.PreviewCallback() {
            @Override
            public void onPreviewFrame(byte[] data, Camera camera) {
                // camera is "loaded" and first preview is sent to the screen
                // do whatever you want to do
            }
        };
    
        @Override
        public void onViewCreated(View view, Bundle savedInstanceState) {
            super.onViewCreated(view, savedInstanceState);
            cameraView = // code to find your CameraView
        }
    
        @Override
        public void onResume() {
            super.onResume();
            Camera camera = cameraView.getCamera();
            if (null != camera) {
                camera.setOneShotPreviewCallback(previewCallback);
            }
        }
    
        private void somehowRestartedCameraViewForWhateverReason() {
            if (null != cameraView) {
                cameraView.onResume(); // force it to restart
                Camera camera = cameraView.getCamera();
                if (null != camera) {
                    camera.setOneShotPreviewCallback(previewCallback);
                }
            }
        }
    }
    
    我使用这段代码来更新用户界面,这样flash按钮只在支持摄像头时出现:

    camera.getParameters().getSupportedFlashModes()
    
    返回非空列表,大小大于0。通常前置摄像头没有闪光灯,但谁知道呢

    如果您想切换摄像头,请在此处查看我的其他答案:

    很抱歉给您带来了困惑。我在上面编辑。我只是想说,在开始活动时,当摄像机第一次加载到视图中时,显示一个进度条。谢谢你的提示。我会检查一下,看看它是否有效。@RyanSimon:“我只是想说,在开始活动时,当相机第一次加载到视图中时,显示一个进度条”——在活动中放置一个
    ProgressBar
    ,并将片段放在它上面(Z轴),我想。很抱歉造成混淆。我在上面编辑。我只是想说,在开始活动时,当摄像机第一次加载到视图中时,显示一个进度条。谢谢你的提示。我会检查一下,看看它是否有效。@RyanSimon:“我只是想说,在开始活动时,当相机第一次加载到视图中时,显示一个进度条”——我想,在活动中放置一个
    ProgressBar
    ,并将片段放在它上面(Z轴)。