如何将数据库中的图像存储在数据库中,以便稍后在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);