我正在使用CrossMobile创建一个应用程序,我想使用相机从我的应用程序中捕获和保存照片。我还需要访问从应用程序拍摄的照片以在列表中显示它们。如何通过按下按钮来显示相机视图?
首先,您可能需要 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);
// ....
}