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