Skip to content Skip to sidebar Skip to footer

Load A Remote Image In A MenuItem Using Glide

Usually if I want to load an image with Glide I would write the following: Glide.with(context) .load(theURLOftheImage) .error(R.drawable.ic_error_image) .into(theIma

Solution 1:

Using the approach suggested in the responses for this question worked

@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);
}

Solution 2:

Another approach from one of my codings populating a BottomNavigationView:

    ...
    bottomNavigationView = findViewById(R.id.bottomNavigationView);

    if(bottomNavigationView != null) {

        bottomNavigationView.inflateMenu(R.menu.bottom_main_menu);

        Menu bottomMenu = bottomNavigationView.getMenu();

        //bottomMenu.removeItem(0);

        final MenuItem menuItem = bottomMenu.add("Test 95");

        Glide
                .with(this)
                .load("https:// <add your image resource link here>")
                .into(new SimpleTarget<Drawable>() {
                    @Override
                    public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) {
                        menuItem.setIcon(resource);
                    }
                });

    }
    ...

remember to add correct Glide version in app gradle, 4.7.1 should work with this one:

   implementation 'com.github.bumptech.glide:glide:4.7.1'

Solution 3:

as SimpleTarget is deprecated there is an other solution for someone targeting this page.

 Glide
        .with(activity)
        .load(path)
        .diskCacheStrategy(DiskCacheStrategy.AUTOMATIC)
        .centerCrop()
        .listener(new RequestListener<Drawable>() {
         @Override
         public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
         
          return false;
         }

         @Override
         public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
         menuItem.setIcon(resource);
          return false;
         }
        });

Post a Comment for "Load A Remote Image In A MenuItem Using Glide"