使用Glide在MenuItem中加载远程图像

Alv*_*ban 3 android uimenuitem android-glide

通常如果我想用Glide加载图像,我会写下面的内容:

Glide.with(context)
     .load(theURLOftheImage)
     .error(R.drawable.ic_error_image)
     .into(theImageView);
Run Code Online (Sandbox Code Playgroud)

但是如果我需要将该URL的图像加载到必须实时更改的MenuItem中呢?

以下是不可能的,因为该方法into不接受参数:

@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);
}
Run Code Online (Sandbox Code Playgroud)

Alv*_*ban 10

使用在答复建议的方法对这一问题的工作

@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);
}
Run Code Online (Sandbox Code Playgroud)