Android 处理图像缓存的正确方法,例如使用MvvmCross的毕加索

Android 处理图像缓存的正确方法,例如使用MvvmCross的毕加索,android,xamarin,mvvmcross,Android,Xamarin,Mvvmcross,我使用的是RecyclerView,而RecyclerItems是使用MvvmCross进行数据绑定的。每个数据绑定对象都包含我正试图使用图像库加载的imageurl。我的第一个想法是在ValueConverter中调用毕加索。要使用毕加索,我需要上下文对象,我不确定是否可以将数据绑定的ImageView作为参数传递给转换器。这是代码 public class MyImageConverter : IMvxValueConverter { protected override objec

我使用的是RecyclerView,而RecyclerItems是使用MvvmCross进行数据绑定的。每个数据绑定对象都包含我正试图使用图像库加载的imageurl。我的第一个想法是在ValueConverter中调用毕加索。要使用毕加索,我需要上下文对象,我不确定是否可以将数据绑定的ImageView作为参数传递给转换器。这是代码

public class MyImageConverter : IMvxValueConverter
{
    protected override object Convert(object value, object parameter)
    {       
        var imageUrl = (string)value;
        // How to optain context or direct access to imageView?
        var imageView = new ImageView(context);
        Picasso.With(context).Load(imageUrl).Into(imageView);
        var bitmap = ((BitmapDrawable)imageView.Drawable).Bitmap;
        return bitmap;
    }
}
还有axml片段

<ImageView android:id="@+id/myImageView"
app:MvxBind="Bitmap MyImageConverter(ImageUrl)" />


最好是异步处理Picasso加载,但我仍然需要访问项目ImageView。

您应该创建一个自定义目标绑定

例如,见:

自从我写了最后一个答案后,事情已经发生了变化,所以这里是当前Android绑定的链接