Xamarin表单Imagesource无法在Android上工作

polkgigr  于 2022-12-02  发布在  Android
关注(0)|答案(3)|浏览(170)

我正在做一个项目,想从服务器获取一个图像到应用程序。我使用imagesource来获取我需要的图像,它在UWP上工作正常,但当我在Android上测试它时,它不工作。我尝试了所有我能在互联网上找到的东西,它仍然不工作。
如果你能帮上忙那就太好了,谢谢。

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

和沙马林。

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

vptzau2j1#

Image的绑定属性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"
        }
5t7ly7z5

5t7ly7z52#

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

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

替换< YourPackageName >< YourPngFileName >项目中混凝土数据的和。
例如,将image.png保存在Android中的Resources/raw文件夹下。

ut6juiuv

ut6juiuv3#

所以我很愚蠢。所有这些anwsers的人留在这里可能是伟大的解决方案,这不是我的。我犯了一个错误,在服务器上,它会得到一个图像与“api/getimagebyid/4/”,而它应该是“api/getimagebyid/4”,这使得它不能在Android上工作的一些原因。修复后,它的工作。
我想感谢每一个在这里回答的人,我很抱歉浪费了你们的时间。我也会学习如何更好地问一个问题,而不是一个模糊的代码半问题。对不起大家,谢谢你们的解决方案。

相关问题