在CrossMobile中使用相机

时间:2017-08-28 15:34:52

标签: mobile multiplatform

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

1 个答案:

答案 0 :(得分:0)

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

在iOS下,您还需要手动在Info.plist中添加NSCameraUsageDescription键(否则,由于Apple的限制,应用程序将崩溃)。

假设你有一个名为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);
    // ....
}