我已经安装了CWAC Camera片段,一切正常。我想做一些自定义。
从查看CWAC Camera的文档,我还没有发现任何支持这种回调的内容。这种事情甚至可以听吗?如果是这样,图书馆是否有一种简单的方法可以做到我没有看到的?
提前感谢您的帮助。
答案 0 :(得分:4)
要在加载相机并开始预览时收到通知,请使用以下代码:
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);
}
}
}
}
我使用此代码更新用户界面,因此只有支持相机时才会出现闪光按钮:
camera.getParameters().getSupportedFlashModes()
返回非空列表和大小> 0.通常前置摄像头没有闪光但是谁知道?
如果您想切换相机,请在此处查看我的其他答案: CWAC Camera - Multiple camera views in one layout (and switching between them)
答案 1 :(得分:0)
我希望在摄像机加载到Activity / Fragment中时显示ProgressBar
我不知道"加载到Activity / Fragment"装置
用户拍完照片后,我想在拍照按钮上再次显示ProgressBar,这样他们就知道他们不能立即拍照直到相机再次准备就绪
您知道何时致电takePicture()
。您可以通过创建自己的saveImage()
实现或CameraHost
的子类来了解CameraHost
上SimpleCameraHost
的调用时间。您可以在这些时间进行ProgressBar
工作。您可以在the demo app中看到此内容,我在其中禁用并重新启用操作栏项目以用于相同目的。