Android 有什么方法可以在摄像机加载后收听吗?cwac摄像机
我有我的CWAC相机片段设置,一切都很好。我想做一些定制Android 有什么方法可以在摄像机加载后收听吗?cwac摄像机,android,camera,commonsware-cwac,Android,Camera,Commonsware 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轴)。