如何为导航抽屉的菜单项赋予颜色?

档案

我正在创建导航抽屉,我看到playtore有彩色菜单图标,我想知道我该怎么做。我试图通过colorFilter在菜单图标上应用颜色,但应用程序强制关闭

我的应用程式

我想要的

这是我的代码

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group
    android:id="@+id/grp1"
    android:checkableBehavior="single">
    <item
        android:id="@+id/navigation_songs"
        android:checked="true"
        android:icon="@drawable/ic_audiotrack_white_24dp"
        android:title="@string/songs" />
    <item
        android:id="@+id/navigation_albums"
        android:icon="@drawable/ic_album_white_24dp"
        android:title="@string/albums" />
    <item
        android:id="@+id/navigation_artist"
        android:icon="@drawable/ic_person_white_24dp"
        android:title="@string/artists" />
    <item
        android:id="@+id/navigation_playlist"
        android:icon="@drawable/ic_playlist_play_white_24dp"
        android:title="@string/playlist" />
</group>
<group
    android:id="@+id/grp2"
    android:checkableBehavior="none">
    <item
        android:id="@+id/navigation_about"
        android:icon="@drawable/ic_info_white_24dp"
        android:title="@string/about" />
    <item
        android:id="@+id/navigation_settings"
        android:icon="@drawable/ic_settings_white_24dp"
        android:title="@string/settings" />
</group>
</menu>
康斯坦丁·洛金诺夫(Konstantin Loginov)
  1. 要将所有图标成特定颜色,您需要添加app:itemIconTintNavigationView

    <android.support.design.widget.NavigationView
         ........
         app:itemIconTint="<your color>"/>
    

    在此处输入图片说明

  2. 仅用2种颜色刷图标

    创建一个选择器:

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:color="#0000FF" android:state_checked= "true" />
        <item android:color="#FF0000" />
    </selector>
    

    app:itemIconTint在您的应用NavigationView

    <android.support.design.widget.NavigationView
         ........
         app:itemIconTint="@drawable/tint_color_selector"/>
    

    最后一步-要添加android:checked="true"MenuItems抽屉菜单的xml中,您要进行其他操作:

     <item
        android:id="@+id/nav_slideshow"
        android:checked="true"
        android:icon="@drawable/ic_menu_slideshow"
        android:title="Slideshow" />
    

    在此处输入图片说明

  3. 要用不同的颜色刷所有图标,例如Google在Google Play中使用的颜色:

    禁用图标的着色:

      navigationView.setItemIconTintList(null);
    

    将所需的图标添加到,res/drawableandroid:icon在菜单的xml中指定它们(我可以为android图标icons8.com/web-app/new-icons/android推荐一个不错的服务

    在此处输入图片说明

    您无需上载新的彩色图标,而可以绘制现有的图标,但这很容易出错:

        Drawable oldIcon = navigationView
                .getMenu()
                .findItem(R.id.nav_gallery)
                .getIcon();
    
        if (!(oldIcon instanceof BitmapDrawable)) {
            return;
        }
    
        Bitmap immutable = ((BitmapDrawable)oldIcon).getBitmap();
        Bitmap mutable = immutable.copy(Bitmap.Config.ARGB_8888, true);
        Canvas c = new Canvas(mutable);
        Paint p = new Paint();
        p.setColor(Color.RED);
        p.setColorFilter(new PorterDuffColorFilter(Color.RED, PorterDuff.Mode.MULTIPLY));
        c.drawBitmap(mutable, 0.f, 0.f, p);
        BitmapDrawable newIcon = new BitmapDrawable(getResources(), mutable);
    
        navigationView
                .getMenu()
                .findItem(R.id.nav_gallery)
                .setIcon(newIcon);
    

    小心!res/drawables-v21模板项目中,Google使用VectorDrawables而不是old BitmapDrawables,因此该代码在此处不起作用。

希望对您有所帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在 Xamarin.Android 中为导航抽屉的菜单项赋予颜色

来自分类Dev

更改导航抽屉菜单项的颜色

来自分类常见问题

更改导航抽屉中选中的菜单项的颜色

来自分类Dev

Android中的导航抽屉菜单项标题颜色

来自分类Dev

Android导航抽屉菜单项图标颜色

来自分类Dev

单击时,导航抽屉菜单项不应更改颜色

来自分类Dev

如何单击材料导航抽屉菜单项上的活动

来自分类Dev

如何以编程方式隐藏导航抽屉菜单项?

来自分类Dev

在不同菜单中更改导航抽屉中已选中菜单项的颜色

来自分类Dev

在导航抽屉中获取所选菜单项的索引值

来自分类Dev

导航抽屉列表中的下划线菜单项

来自分类Dev

导航抽屉-缓慢设置菜单项的动画

来自分类Dev

菜单项未出现在导航抽屉中

来自分类Dev

导航抽屉活动中菜单项的OnClickListener

来自分类Dev

Xamarin 导航抽屉菜单项单击事件未处理

来自分类Dev

显示导航抽屉和返回箭头的菜单项

来自分类Dev

在导航抽屉菜单项上使用 TapTargetView

来自分类Dev

如何在导航抽屉中添加菜单项运行时?

来自分类Dev

菜单项之后如何在导航抽屉中显示文本视图?

来自分类Dev

如何在Android的导航抽屉中添加可折叠菜单项?

来自分类Dev

如何在Android的导航抽屉中设置菜单项的样式?

来自分类Dev

如何在导航抽屉中的菜单项之间画一条线

来自分类Dev

如何从 WebInternface 更改导航抽屉菜单项的可见性

来自分类Dev

Twitter Bootstrap单个导航栏菜单项颜色

来自分类Dev

下拉菜单项的引导导航栏背景颜色

来自分类Dev

ReactNative如何禁用单击抽屉菜单项

来自分类常见问题

单击菜单项后,导航栏抽屉菜单未关闭

来自分类Dev

单击菜单项后,导航栏抽屉菜单未关闭

来自分类Dev

更改菜单项颜色

Related 相关文章

  1. 1

    如何在 Xamarin.Android 中为导航抽屉的菜单项赋予颜色

  2. 2

    更改导航抽屉菜单项的颜色

  3. 3

    更改导航抽屉中选中的菜单项的颜色

  4. 4

    Android中的导航抽屉菜单项标题颜色

  5. 5

    Android导航抽屉菜单项图标颜色

  6. 6

    单击时,导航抽屉菜单项不应更改颜色

  7. 7

    如何单击材料导航抽屉菜单项上的活动

  8. 8

    如何以编程方式隐藏导航抽屉菜单项?

  9. 9

    在不同菜单中更改导航抽屉中已选中菜单项的颜色

  10. 10

    在导航抽屉中获取所选菜单项的索引值

  11. 11

    导航抽屉列表中的下划线菜单项

  12. 12

    导航抽屉-缓慢设置菜单项的动画

  13. 13

    菜单项未出现在导航抽屉中

  14. 14

    导航抽屉活动中菜单项的OnClickListener

  15. 15

    Xamarin 导航抽屉菜单项单击事件未处理

  16. 16

    显示导航抽屉和返回箭头的菜单项

  17. 17

    在导航抽屉菜单项上使用 TapTargetView

  18. 18

    如何在导航抽屉中添加菜单项运行时?

  19. 19

    菜单项之后如何在导航抽屉中显示文本视图?

  20. 20

    如何在Android的导航抽屉中添加可折叠菜单项?

  21. 21

    如何在Android的导航抽屉中设置菜单项的样式?

  22. 22

    如何在导航抽屉中的菜单项之间画一条线

  23. 23

    如何从 WebInternface 更改导航抽屉菜单项的可见性

  24. 24

    Twitter Bootstrap单个导航栏菜单项颜色

  25. 25

    下拉菜单项的引导导航栏背景颜色

  26. 26

    ReactNative如何禁用单击抽屉菜单项

  27. 27

    单击菜单项后,导航栏抽屉菜单未关闭

  28. 28

    单击菜单项后,导航栏抽屉菜单未关闭

  29. 29

    更改菜单项颜色

热门标签

归档