【问题标题】:Xamarin forms Imagesource not working on AndroidXamarin 形成 Imagesource 不适用于 Android
【发布时间】:2022-11-30 03:26:13
【问题描述】:

所以我正在做一个项目,想从我的服务器获取图像到应用程序。 我使用图像源来获取我需要的图像,它在 UWP 上运行良好,但是当我在 Android 上测试它时,它不起作用。我尝试了在互联网上可以找到的所有内容,但仍然无法正常工作。

如果你能帮忙那就太好了 谢谢你。

ImageSource fotoopad = ImageSource.FromFile("uploadplaceholder.png");
if (x.FotoPath != "") fotoopad = ImageSource.FromUri(new Uri(XamerinAPP.LoginApp.apiUrl + @"/api/media/image/" + x.Id));                    

和 xamarin。

<Image x:Name="StackMediaIMAGE" IsVisible="{Binding isFoto}" Source="{Binding fotoPad}"/>

【问题讨论】:

  • 这些信息或代码不足以有效地帮助您。 “我尝试了我能找到的一切......”,这是什么意思,你尝试了什么?当您在 Android 上调试您的应用程序时,x.FotoPath 的值是多少?那甚至是从哪里来的?

标签: c# android xamarin xamarin.forms xamarin.android


【解决方案1】:

图片的绑定属性fotoPad的代码是什么?

一般来说,如果我们想给一张图片绑定一个属性,我们可以这样做:

1.在当前页面的viewModel中添加一个属性fotoPad

例如:

public class Item
{       
    public string fotoPad { get; set; } 

    public bool isFoto{ get; set; }
}

2.fotoPad的正确格式如下:

new Item
        {  
            isFoto = true,
            fotoPad = "https://upload.wikimedia.org/wikipedia/commons/thumb/0/0d/Alouatta_guariba.jpg/200px-Alouatta_guariba.jpg"
        }

【讨论】:

    【解决方案2】:

    如果您正在使用适用于 Android 的 Xamarin,请尝试通过以下方式获取 Uri:

    Android.Net.Uri photoUri = Android.Net.Uri.Parse($"{ContentResolver.SchemeAndroidResource}://{PackageName}/{<YourPackageName>.Droid.Resource.Raw.<YourPngFileName>}");
    

    将 < YourPackageName > 和 < YourPngFileName > 替换为项目中的具体数据。

    将 image.png(例如)保存在 Android 中的 Resources/raw 文件夹下。

    【讨论】:

      【解决方案3】:

      所以我只是愚蠢。 留在这里的所有这些答案可能都是很好的解决方案,不是我的。我在服务器上犯了一个错误,它会得到一个带有“api/getimagebyid/4/”的图像,而它应该是“api/getimagebyid/4”,这使得它由于某种原因在 Android 上不起作用。修复该错误后,它起作用了。

      我要感谢所有在这里回答的人,我很抱歉浪费你的时间。我还将学习如何更好地提出问题,而不是用模糊的代码提出半问题。 对不起大家,谢谢你的解决方案。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-11-06
        • 2020-09-20
        • 2016-09-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多