Пример #1
0
        public override Task <IImageSourceServiceResult <Drawable>?> GetDrawableAsync(IImageSource imageSource, Context context, CancellationToken cancellationToken = default)
        {
            var uriImageSource = (IUriImageSource)imageSource;

            if (!uriImageSource.IsEmpty)
            {
                try
                {
                    var drawableCallback = new ImageLoaderResultCallback();

                    PlatformInterop.LoadImageFromUri(context, uriImageSource.Uri.OriginalString, new Java.Lang.Boolean(uriImageSource.CachingEnabled), drawableCallback);

                    return(drawableCallback.Result);
                }
                catch (Exception ex)
                {
                    Logger?.LogWarning(ex, "Unable to load image uri '{Uri}'.", uriImageSource.Uri.OriginalString);
                    throw;
                }
            }

            return(Task.FromResult <IImageSourceServiceResult <Drawable>?>(null));
        }