簡體   English   中英

Xamarin.Essentials Share drawable

[英]Xamarin.Essentials Share drawable

我正在嘗試共享位於 Android 的 Resources/Drawables 文件夾中的本地圖像。 我正在使用 Xamarin 和 Xamarin.Essentials 插件。 於是就有了這個function:

await Share.RequestAsync(new ShareFileRequest
{
Title = Title,
File = new ShareFile(file)
});

所以對於文件,我需要從 Drawable 文件夾到文件的路徑。 我已經嘗試了很多變化。 例如:

var file = Android.Net.Uri.Parse("android.resource://" + Android.App.Application.Context.PackageName + "/" + Resource.Drawable.image).Path;

但我總是收到一個錯誤,即找不到該文件。 我做錯了什么? 提前致謝

因為資源沒有文件路徑,正如@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)
        });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM