使用 URL 在底部导航栏项目图标中加载图像

Loading an image inside a bottom navigation bar item icon using an URL

我正在尝试使用 firebase 存储 url 在底部导航栏的项目图标内加载个人资料图片,这是我的代码:

 Glide.with(getApplicationContext()).asBitmap().load(profilePicUrl)
    .into(new CustomTarget<Bitmap>() {

        @Override
        public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
            Drawable profileImage = new BitmapDrawable(getResources(), resource);
            bottomNav.getMenu().getItem(4).setIcon(profileImage);
        }

        @Override
        public void onLoadCleared(@Nullable Drawable placeholder) {

        }
    });

profilePicUrl 确实有效,我已经将它用于另一个图像视图。但是,当我 运行 应用程序时,图标的尺寸会根据我要加载的图片发生变化,但里面没有图片,here's how it looks

菜单不支持彩色图像

你不能在这些地方使用彩色图像,还有一点:

  1. 在底部导航中
  2. 在导航抽屉中
  3. 在弹出菜单中
  4. 等...

基本上任何一个视图都使用菜单文件作为其资源,不能有彩色图像。这就是为什么你看不到它。要自己进行测试,请在您的可绘制对象中拍摄一张彩色图像并将其设置为底部导航的图标。你注意到它以同样的方式出现。这证明了

编辑


  1. post 给出了一些关于如何做的信息
  2. 你可以这样做:
    mBottomNav.setItemIconTintList(null);