在CrossMobile中使用摄像头

在CrossMobile中使用摄像头,mobile,multiplatform,crossmobile,Mobile,Multiplatform,Crossmobile,我正在使用CrossMobile创建一个应用程序,我想使用相机从我的应用程序中捕获和保存照片。我还需要访问从应用程序拍摄的照片,以在列表中显示它们。如何在按下按钮时显示摄像头视图?首先,您可能需要CoreImage插件,否则某些特定权限将不可用 在iOS下,您还需要手动在Info.plist中添加NSCameraUsageDescription密钥(否则应用程序将因苹果的限制而崩溃) 假设您有一个名为cameraButton的UIButton和一个名为imgV的UIImageView,两者都在代

我正在使用CrossMobile创建一个应用程序,我想使用相机从我的应用程序中捕获和保存照片。我还需要访问从应用程序拍摄的照片,以在列表中显示它们。如何在按下按钮时显示摄像头视图?

首先,您可能需要CoreImage插件,否则某些特定权限将不可用

在iOS下,您还需要手动在Info.plist中添加NSCameraUsageDescription密钥(否则应用程序将因苹果的限制而崩溃)

假设您有一个名为cameraButton的UIButton和一个名为imgV的UIImageView,两者都在代码的loadView部分初始化。 那么核心将类似于:

public void loadView() {
    // ....
    cameraButton.addTarget((sender, event) -> {
        if (!UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.Camera))
            new UIAlertView(null, "Unable to access camera", null, "Accept").show();
        else {
            UIImagePickerController picker = new UIImagePickerController();
            picker.setSourceType(UIImagePickerControllerSourceType.Camera);
            picker.setDelegate(new UIImagePickerControllerDelegate() {
                @Override
                public void didFinishPickingMediaWithInfo(UIImagePickerController picker, Map<String, Object> info) {
                    picker.dismissModalViewControllerAnimated(true);
                    UIImage img = (UIImage) info.get(UIImagePickerController.OriginalImage);
                    imgV.setImage(img);
                }

                @Override
                public void didCancel(UIImagePickerController picker) {
                    picker.dismissModalViewControllerAnimated(true);
                }
            });
            presentModalViewController(picker, true);
        }
    }, UIControlEvents.TouchUpInside);
    // ....
}
public void loadView(){
// ....
cameraButton.addTarget((发送方,事件)->{
如果(!UIImagePickerController.IsSourceType可用(UIImagePickerController SourceType.Camera))
新建UIAlertView(null,“无法访问摄像头”,null,“接受”).show();
否则{
UIImagePickerController选择器=新UIImagePickerController();
picker.setSourceType(UIImagePickerControllerSourceType.Camera);
setDelegate(新的UIImagePickerControllerDelegate()){
@凌驾
public void didFinishPickingMediaWithInfo(UIImagePickerController选择器,地图信息){
picker.dismissModalViewControllerAnimated(true);
UIImage img=(UIImage)info.get(UIImagePickerController.OriginalImage);
imgV.setImage(img);
}
@凌驾
公共无效didCancel(UIImagePickerController选择器){
picker.dismissModalViewControllerAnimated(true);
}
});
presentModalViewController(选择器,true);
}
},UIControlEvents.TouchUpInside);
// ....
}

欢迎来到SO!查看这篇关于如何提出好问题并完善自己的帖子:。