我正在尝试共享Android中我的Resources/Drawables文件夹中的本地图像。我使用的是Xamarin和Xamarin.Essentials插件。所以这里有这个函数:
await Share.RequestAsync(new ShareFileRequest
{
Title = Title,
File = new ShareFile(file)
});因此,对于文件,我需要来自可绘制文件夹的文件的路径。我试过这么多变种。例如:
var file = Android.Net.Uri.Parse("android.resource://" + Android.App.Application.Context.PackageName + "/" + Resource.Drawable.image).Path;但是我总是得到一个错误,文件找不到。我哪里做错了?提前感谢
发布于 2021-03-09 01:06:48
因为参考资料没有文件路径,正如@Jason所说的,我将图像保存在另一个可访问的文件中。所以我不知道这是不是最好的解决方案,但它对我来说是有效的:
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)
});https://stackoverflow.com/questions/66531900
复制相似问题