通常如果我想用 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);
}
我是一名优秀的程序员,十分优秀!