如何在NavigationView中更改菜单项图标的大小?

Chr*_*ick 41 android material-design navigationview

我有以下菜单项:

<item
        android:id="@+id/lock"
        android:checkable="true"
        android:title="@string/lock" >
    <menu >

        <item
            android:id="@+id/block_mess"
            android:checked="true"
            android:icon="@drawable/chantinnhan"
            android:title="@string/block_mess_string" />

        <item
            android:id="@+id/block_call"
            android:checked="false"
            android:icon="@drawable/chancuocgoi"
            android:title="@string/block_call_string" />

        <item
            android:id="@+id/lock_app"
            android:checked="false"
            android:icon="@drawable/khoaungdung"
            android:title="@string/lock_app_string" />


    </menu>
    </item>
Run Code Online (Sandbox Code Playgroud)

......还有更多,但它真的很长

但图标真的很小(即使它有res 256x256).我想把它做大!那可能吗?这是截图:

在此输入图像描述

编辑:好的,我们都知道谷歌"锁定"图标大小.但我想知道我可以"绕过"锁定并制作一些东西......可自定义吗?

Ama*_*Yus 94

您可以通过覆盖design_navigation_icon_size属性来更改navigationView图标的大小.你可以把它放在尺寸中,因为你要覆盖私有属性,你需要包括tools:override="true"

<dimen name="design_navigation_icon_size" tools:override="true">40dp</dimen>
Run Code Online (Sandbox Code Playgroud)

  • 这个答案仍然正确吗?我正在尝试这个,但没有成功,并且它总是在 NavigationView 组件中显示相同的大小。 (2认同)
  • 你为什么不提到它需要在尺寸文件中! (2认同)
  • @ KishanSolanki124我做到了。再读一次。 (2认同)

Abh*_*hek 21

有解决方案

在尺寸中输入以下内容.

<dimen name="design_navigation_icon_size">48dp</dimen>
Run Code Online (Sandbox Code Playgroud)


小智 10

决定图标大小的主要因素是维度:navigation_icon_size,看一下这个NavigationMenuItemView类:

 public NavigationMenuItemView(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
    this.mIconSize = context.getResources().getDimensionPixelSize(dimen.navigation_icon_size);
}
Run Code Online (Sandbox Code Playgroud)

所以,我们可以在我们的维度文件中覆盖该属性.

例如:

<dimen name="navigation_icon_size">48dp</dimen>
Run Code Online (Sandbox Code Playgroud)

在维度文件中添加该代码,您可以发现它的大小已更改.

之前:

在此输入图像描述

后:

在此输入图像描述

  • 请改用"design_navigation_icon_size".谷歌在支持库23中添加了design_前缀 (5认同)
  • 补充说,没有任何反应 (2认同)

小智 7

在您的 xml 文件中,最短的方法是在 NavigationView 中有一个属性只需添加它。

app:itemIconSize="12dp"


Mic*_*rla 6

根据Google自己设置的设计文档,图标应设置为14sp.我建议您遵守此建议,因为这是所有应用程序中使用的标准.正如您所说,导航抽屉中没有大型图标的应用程序,因为在开发导航抽屉图标时这不是常态.

在此输入图像描述