如何将数据库中的图像存储在数据库中,以便稍后在Xamarin.Android中加载?

问题描述:

我想让用户从他们的画廊加载图像:如何将数据库中的图像存储在数据库中,以便稍后在Xamarin.Android中加载?

var imageIntent = new Intent(); 
      imageIntent.SetType("image/*"); 
      imageIntent.SetAction(Intent.ActionGetContent); 
      StartActivityForResult(Intent.CreateChooser(imageIntent, "Select photo"), REQUESTCODE); 

这工作得很好:我可以在活动使用的图像。但我想将URI存储在数据库中,以便图像与对象相关联。我使用:

_recipeImage.SetImageURI(data.Data); 
model.ImageUrl = data.Data.ToString(); 

_recipeImage是我使用的是看我居然得到了正确的图像,现在只是一个图像视图。

当我将模型保存到数据库中,我得到一个字符串,它看起来是这样的:当用户打开这个项目后,图像应加载,所以我解析字符串为Uri

content://com.android.providers.downloads.documents/document/22 

。我尝试设置图像URI,就像以前一样,但没有显示图像。

var uri = Android.Net.Uri.Parse(imageUrl); 
imageView.SetImageURI(uri); 

有没有更好的工作方式来做到这一点?

我想你想直接加载图片使用URL,使用一些第三方库比较容易,例如Picasso

由于它是一个Java库,您可以使用Binding Library在Xamarin中使用它。

添加此lib放到你的项目后,您可以简单地这样的代码:

Picasso.With(this).Load(imageUrl).Into(imageView);