如何更改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> 

…还有更多,但真的很长

但图标真的很小(即使它有256×256分辨率)。 我想把它做得更大! 那可能吗? 这是截图:

在这里输入图像说明

编辑:好的,我们都知道Google会“locking”图标大小。 但我想知道,我可以“绕过”locking,并做出…定制?

Solutions Collecting From Web of "如何更改NavigationView中的菜单项图标的大小?"

您可以通过覆盖design_navigation_icon_size属性来更改navigationView图标的大小。 你可以把它放在维度中,因为你重载了一个私有属性,你需要包含tools:override="true"

 <dimen name="design_navigation_icon_size" tools:override="true">40dp</dimen> 

有解决scheme

在维度中input以下内容。

 <dimen name="design_navigation_icon_size">48dp</dimen> 

决定图标大小的主要因素是维度: 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); } 

所以,我们可以重写我们的维度文件中的属性。

例如:

 <dimen name="navigation_icon_size">48dp</dimen> 

将该代码添加到维度文件中,并且可以发现它的大小已更改。

之前:

在这里输入图像说明

后:

在这里输入图像说明

根据Google自己devise的文档,图标应该设置为14sp 。 我build议你遵守这个build议,因为这是一个在所有应用程序中使用的标准。 正如你所说,导航抽屉里没有大图标的应用程序,因为这在开发导航抽屉图标时并不常见。

在这里输入图像说明