2015-10-16 1 views
3

Я новичок в Xamarin Android Application. Я использую компонент Picasso для кэширования и загрузки изображений, и он отлично работает.
Picasso.With (this.Activity).Load ("Here I pass Url").Into (imageview); Теперь я использую связывание как MvvmCross:Я не могу кэшировать изображения, поскольку я привязываю изображение с помощью MvvmCross

<Mvx.MvxImageView 
    android:layout_width="120dp" 
    android:layout_height="140dp" 
    android:id="@+id/ProductImageView" 
    android:scaleType="fitXY" 
    local:MvxBind="ImageUrl URL" /> 

Здесь URL является строка, я поставил в задаче Viewmodel.My, оно загружает изображение, но не может кэшировать этот образ как Picasso does.Can кто-нибудь предложить мне, что делать? Как использовать Picasso для привязки и кеширования изображения?

ответ

2

Вы можете кэшировать изображение с Пикассо, не загружая его в любых ImageViewers, как это:

Picasso. with(Context). load(ImageFile.Url). into(null); 

Но им не уверены в том, как вы можете использовать это позже.

Вы можете попробовать свою собственную реализацию кэширования, это легко проверить это не article

4

Там ничего магия о MvxImageView - это класс класс, который наследует от ImageView и выставляет public string ImageUrl свойство, которое можно использовать в связывании ,

Вы не должны использовать MvxImageView - вы можете создать свой собственный PicassoImageView и выставить свойство:

private string _i; 
public string ImageUrl 
{ 
    get { return _i; } 
    set { 
     if (_i == value) return; 
     _i = value; 
     if (string.IsNullOrEmpty(value)) { 
      // what do you want to do here? clear the view? use a placeholder? 
      return; 
     } 
     Picasso.With (this.Context).Load (_i).Into (this); 
    } 
} 

Такого рода вещи должны работать ...

... С бонусных очков если вы занимаетесь блогами/напишите о том, как вы получаете эту работу и чему вы учитесь на этом пути (или если вы публикуете пакет nuget, который могут использовать другие)

Смежные вопросы