繁体   English   中英

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

[英]How to change the size of menu item icon in 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>

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

但图标真的很小(即使它有 res 256x256)。 我想让它变大! 这可能吗?

这是屏幕截图:

在此处输入图片说明

编辑:好的,我们都知道谷歌“锁定”了图标大小。 但是我想知道我可以“绕过”那个锁并制作一些东西......可定制吗?

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

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

得到解决方案

在下面输入尺寸。

<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>

将该代码添加到尺寸文件中,您会发现它的大小发生了变化。

前:

在此处输入图片说明

后:

在此处输入图片说明

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

在此处输入图片说明

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

app:itemIconSize="12dp"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM