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

标签 android android-glide uimenuitem

通常如果我想用 Glide 加载图像我会写如下:

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

但是如果我需要将该 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);
}

最佳答案

使用 this question 的回复中建议的方法工作了

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

关于android - 使用 Glide 在 MenuItem 中加载远程图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37116247/

相关文章:

android - 单击TDateEdit(FMX Control)导致Android应用程序崩溃

android - 如何通过按下应用程序小部件来启动 IntentService

android - 在notifydatasetchanged()上滑动圆角丢失并变成方形

android - 为什么我的 Android 应用程序占用过多内存?

java - Glide 错误 : java. lang.IllegalArgumentException - 您必须在后台线程上调用此方法

ios - 自定义 UIMenuController 问题

java - 到底需要如何以及在哪里进行更改才能接受来自重音内容的正常字符搜索而不更改 UI android

具有不同模块的Android项目(sharedPreferences)