我正在研究xamarin.forms.我正在创建一个可以在Android和iOS上运行的应用程序.我必须从两个设备的库中选择多个图像.
但是,我无法一次选择多个图像.我可以借助媒体选择器(CrossMedia)选择单个图像.
请更新我如何使用xamarin.forms从两个设备的库中选择多个图像?
此致,Anand Dubey
cha*_*nte 12
首先,对于在Xamarin Forms中选择多个图像,您应该为每个平台执行依赖服务.
在Android中使用:
.PutExtra (Intent.ExtraAllowMultiple, true);
例如:
  [assembly: Xamarin.Forms.Dependency (typeof (MediaService))]
  namespace MyProject
  {
  public class MediaService : Java.Lang.Object, IMediaService
  {
    public MediaService ()
    {
    }
    public void OpenGallery()
    {
        Toast.MakeText (Xamarin.Forms.Forms.Context, "Select max 20 images", ToastLength.Long).Show ();
        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);
       }
     }
   }
在IOS中:
Install this control: ELCImagePicker
和:
[assembly: Xamarin.Forms.Dependency (typeof (MediaService))]
namespace MyProject
{
public class MediaService: IMediaService, IMessanger
{
    public MediaService ()
    {
    }
    public void OpenGallery()
    {
        var picker = ELCImagePickerViewController.Instance;
        picker.MaximumImagesCount = 15;
        picker.Completion.ContinueWith (t => {
            picker.BeginInvokeOnMainThread(()=>
                {
                    //dismiss the picker
                    picker.DismissViewController(true,null);
                    if (t.IsCanceled || t.Exception != null) {
                    } else {
                        Util.File.Path = new List<string>();
                        var items = t.Result as List<AssetResult>;
                        foreach (var item in items) {
                            Util.File.Path.Add (item.Path);
                        }
                        MessagingCenter.Send<IMessanger> (this, "PostProject");
                    }
                });
        });
        var topController = UIApplication.SharedApplication.KeyWindow.RootViewController;
        while (topController.PresentedViewController != null) {
            topController = topController.PresentedViewController;
        }
        topController.PresentViewController (picker, true, null);
    }
  }
}
| 归档时间: | 
 | 
| 查看次数: | 9630 次 | 
| 最近记录: |