【问题标题】:How to use setItemIconTintList with specific item? [BottomNavigationView]如何将 setItemIconTintList 与特定项目一起使用? [底部导航视图]
【发布时间】:2022-01-07 07:14:09
【问题描述】:

我正在尝试在BottomNavigationView 中显示用户照片,但我不知道如何正确操作。

此解决方案运行良好,但其他项目会失去颜色

Drawable drawable = activityMainBinding.activityMainBottomNavigationViewBottomNavigation.getMenu().findItem(R.id.menu_bottom_navigation_user).getIcon();
activityMainBinding.activityMainBottomNavigationViewBottomNavigation.setItemIconTintList(null);

The Code Result

我尝试通过仅对用户项应用 setItemIconTintList 方法来解决问题

Drawable drawable = activityMainBinding.activityMainBottomNavigationViewBottomNavigation.getMenu().findItem(R.id.menu_bottom_navigation_user).getIcon();
drawable.setState(null);
drawable.setTintList(null);
drawable.clearColorFilter();
activityMainBinding.activityMainBottomNavigationViewBottomNavigation.getMenu().findItem(R.id.menu_bottom_navigation_user).setIcon(drawable);

The Code Result

我该如何解决这个问题?

我希望有人直接显示附加的图像,因为我做不到。

【问题讨论】:

    标签: android material-design android-drawable android-bottomnavigationview


    【解决方案1】:

    您可以使用此代码:

    Menu navMenu = activityMainBinding.activityMainBottomNavigationViewBottomNavigation.getMenu();
    MenuItem menuItem = navMenu.findItem(R.id.menu_bottom_navigation_user);
    Glide.with(context)
        .asBitmap()
        .load("your image")
        .apply(RequestOptions
                .circleCropTransform()
                .placeholder("Your PlaceHolder"))
        .into(new SimpleTarget<Bitmap>() {
            public void onResourceReady(Bitmap resource, Transition<Bitmap> transition) {
                menuItem.setIcon(new BitmapDrawable(context.getResource(), resource));
            }
        })
    

    【讨论】:

    • 抱歉,您的解决方案不起作用,SimpleTarget 已弃用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多