首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可绘制的Xamarin.Essentials共享

可绘制的Xamarin.Essentials共享
EN

Stack Overflow用户
提问于 2021-03-08 22:45:55
回答 1查看 61关注 0票数 0

我正在尝试共享Android中我的Resources/Drawables文件夹中的本地图像。我使用的是Xamarin和Xamarin.Essentials插件。所以这里有这个函数:

代码语言:javascript
复制
await Share.RequestAsync(new ShareFileRequest
{
Title = Title,
File = new ShareFile(file)
});

因此,对于文件,我需要来自可绘制文件夹的文件的路径。我试过这么多变种。例如:

代码语言:javascript
复制
var file = Android.Net.Uri.Parse("android.resource://" + Android.App.Application.Context.PackageName + "/" + Resource.Drawable.image).Path;

但是我总是得到一个错误,文件找不到。我哪里做错了?提前感谢

EN

回答 1

Stack Overflow用户

发布于 2021-03-09 01:06:48

因为参考资料没有文件路径,正如@Jason所说的,我将图像保存在另一个可访问的文件中。所以我不知道这是不是最好的解决方案,但它对我来说是有效的:

代码语言:javascript
复制
        Drawable drawable = ResourcesCompat.GetDrawable(Resources, Resource.Drawable.image, null);
        Bitmap bitmap = ((BitmapDrawable)drawable).Bitmap;
        byte[] imgByteArray;
        using (var stream = new MemoryStream())
        {
            bitmap.Compress(Bitmap.CompressFormat.Png, 0, stream);
            imgByteArray = stream.ToArray();
        }

        var file = System.IO.Path.Combine(FileSystem.CacheDirectory, "share.png");
        File.WriteAllBytes(file, imgByteArray);
        await Share.RequestAsync(new ShareFileRequest
        {
            Title = "Share",
            File = new ShareFile(file)
        });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66531900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档