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

时间:2017-08-15 16:56:03

标签: c# android xamarin 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只是一个图像视图,我正在使用它来查看我现在是否真正正确地获得了图像。

当我将模型保存到数据库时,我得到一个类似于:

的字符串
content://com.android.providers.downloads.documents/document/22

当用户稍后打开此项时,图像应该加载,因此我将字符串解析为Uri。我尝试像以前一样设置图像URI,但没有显示图像。

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

有没有更好/更有效的方法呢?

1 个答案:

答案 0 :(得分:1)

我认为您想直接加载图片使用URL,使用某些第三方库更容易,例如Picasso

由于它是一个java lib,你可以使用Binding Library在Xamarin中使用它。

将此lib添加到项目中后,您可以像这样编写代码:

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