以Xamarin形式拍摄或选择多个图像

Sru*_*kar 5 c# xamarin.forms

我正在使用“ Plugin.Media.CrossPlatform” nuget来访问Camera并以Xamarin Forms形式拍照。但目前,它一次只能拍摄一张照片,并且仅上传最后拍摄的照片。我想添加多个捕获,并允许用户从最近捕获的图像中选择特定的图片。Android和IOS两个平台中的此插件怎么可能?

另外,我还添加了选择模式,如果用户想从图库中选择图片。但是,存在相同的问题。我想一次选择多个图像,然后在两个平台上将其上传。Xamarin Forms中的工具如何?是否有用于此任务的示例或博客?

我正在使用这个包裹。

hic*_*sou 0

MediaPlugin 不允许多次捕获或拾取多张图片。

您必须实现平台方法并使用依赖服务访问它们,类似的东西。DependencyService.Get<IDoMultipleStuff>().TakePictures();

对于 Android,您可以使用以下命令拍摄多张照片INTENT_ACTION_STILL_IMAGE_CAMERA

Intent intent = new Intent(
    MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA);
this.startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

对于 iOS,您可以使用PhotoPicker,它可以让您在返回应用程序之前拍摄多张照片。

在Android中,您可以通过在Intent中添加额外的内容来选择多个图像ExtraAllowMultiple

var imageIntent = new Intent(Intent.ActionPick);
imageIntent.SetType ("image/*");
imageIntent.PutExtra (Intent.ExtraAllowMultiple, true);
imageIntent.SetAction (Intent.ActionGetContent);
((Activity)Forms.Context).StartActivityForResult(Intent.CreateChooser (imageIntent, "Select photo"), 0);
Run Code Online (Sandbox Code Playgroud)

对于iOS,您可以通过这种方式使用ELCImagePicker 。

var picker = ELCImagePickerViewController.Create();
picker.MaximumImagesCount = 15;

picker.Completion.ContinueWith (t => {
  if (t.IsCanceled || t.Exception != null) {
    // no pictures for you!
  } else {
     var items = t.Result as List<AssetResult>;
   }
});

PresentViewController (picker, true, null);
Run Code Online (Sandbox Code Playgroud)