2016-05-09 5 views
1

Normalerweise, wenn ich mit Glide ein Bild laden, möchte ich folgendes schreiben würde:Legen Sie eine Remote-Bild in einem MenuItem Glide mit

Glide.with(context) 
    .load(theURLOftheImage) 
    .error(R.drawable.ic_error_image) 
    .into(theImageView); 

aber was ist, wenn ich das Bild dieser URL in ein MenuItem laden müssen das muss in Echtzeit geändert werden?

Das folgende ist nicht möglich, weil die Methode into die Parameter nicht akzeptiert: für

@Override 
public boolean onPrepareOptionsMenu(Menu menu) { 
    MenuItem settingsItem = menu.findItem(R.id.actionbar_menu_profile_actions); 
    if (changeImage) { 
     Glide.with(this).load(theURLOftheImage).error(R.drawable.ic_error_image).into(settingsItem); 
    } 
    return super.onPrepareOptionsMenu(menu); 
} 

Antwort

6

Mit dem Ansatz in den Antworten vorgeschlagen this question arbeitete

@Override 
public boolean onPrepareOptionsMenu(Menu menu) { 
    MenuItem settingsItem = menu.findItem(R.id.actionbar_menu_profile_actions); 
    if (changeImage) { 
     Glide.with(this).load(theURLOfTheImage).asBitmap().into(new SimpleTarget<Bitmap>(100,100) { 
      @Override 
      public void onResourceReady(Bitmap resource, GlideAnimation glideAnimation) { 
       settingsItem.setIcon(new BitmapDrawable(getResources(), resource)); 
      } 
     }); 
    } 
    return super.onPrepareOptionsMenu(menu); 
}