如何更改 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)。我想让它变大!这可能吗?
截图如下:
编辑:好的,我们都知道 Google "lock" 图标大小。但我想知道我可以 "bypass" 锁定并制作一些...可定制的东西吗?
根据Google自己设置的设计文档,图标应该设置为14sp
。我建议您遵守此建议,因为这是所有应用程序都使用的标准。正如您所说,没有应用程序在导航抽屉中有大图标,因为在开发导航抽屉图标时这不是规范。
决定图标大小的主要因素是尺寸:navigation_icon_size
,看看NavigationMenuItemView
class:
public NavigationMenuItemView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
this.mIconSize = context.getResources().getDimensionPixelSize(dimen.navigation_icon_size);
}
所以,我们可以直接覆盖 dimens 文件中的 属性。
例如:
<dimen name="navigation_icon_size">48dp</dimen>
在 dimens 文件中添加该代码,您会发现它的大小发生了变化。
之前:
之后:
找到解决方案
Make Below entry in dimens.
<dimen name="design_navigation_icon_size">48dp</dimen>
您可以通过覆盖 design_navigation_icon_size
属性来更改 navigationView 图标的大小。你可以把它放在 dimens 中,因为你要覆盖私有属性,所以你需要包含 tools:override="true"
<dimen name="design_navigation_icon_size" tools:override="true">40dp</dimen>
在您的 xml 文件中,最短的方法是在 NavigationView 中有一个 属性
加个就行了。
app:itemIconSize="12dp"
我有以下菜单项:
<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)。我想让它变大!这可能吗?
截图如下:
编辑:好的,我们都知道 Google "lock" 图标大小。但我想知道我可以 "bypass" 锁定并制作一些...可定制的东西吗?
根据Google自己设置的设计文档,图标应该设置为14sp
。我建议您遵守此建议,因为这是所有应用程序都使用的标准。正如您所说,没有应用程序在导航抽屉中有大图标,因为在开发导航抽屉图标时这不是规范。
决定图标大小的主要因素是尺寸:navigation_icon_size
,看看NavigationMenuItemView
class:
public NavigationMenuItemView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
this.mIconSize = context.getResources().getDimensionPixelSize(dimen.navigation_icon_size);
}
所以,我们可以直接覆盖 dimens 文件中的 属性。
例如:
<dimen name="navigation_icon_size">48dp</dimen>
在 dimens 文件中添加该代码,您会发现它的大小发生了变化。
之前:
之后:
找到解决方案
Make Below entry in dimens.
<dimen name="design_navigation_icon_size">48dp</dimen>
您可以通过覆盖 design_navigation_icon_size
属性来更改 navigationView 图标的大小。你可以把它放在 dimens 中,因为你要覆盖私有属性,所以你需要包含 tools:override="true"
<dimen name="design_navigation_icon_size" tools:override="true">40dp</dimen>
在您的 xml 文件中,最短的方法是在 NavigationView 中有一个 属性 加个就行了。
app:itemIconSize="12dp"