How to change the size of menu item icon in Naviga

2020-02-18 04:37发布

问题:

I have the following menu item:

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

...there's still more but it's really long

but the icon is really small (even it has res 256x256). I'd like to make it bigger! Is that possible? Here's the screenshot:

EDIT: OK, we both know that Google "lock" the icon size. But I want to know that can I "bypass" that lock and make something... customizable ?

回答1:

You can change the size of navigationView icon by overriding design_navigation_icon_size attribute. You can put it in dimens and because you're overriding a private attribute, you need to include tools:override="true"

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


回答2:

Got Solution

Make Below entry in dimens.

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


回答3:

The main thing that decide the icon's size is the dimension:navigation_icon_size, have a look at the NavigationMenuItemView class:

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

so, we can just overide the property in our dimens file.

For example:

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

add that code in the dimens file, and you can find it's size changed.

Before:

After:



回答4:

According to the the design document set by Google itself, icons should be set to 14sp. I suggest you abide by this recommendation, since this is a standard used throughout all apps. As you said, there are no apps which have large icons in the navigation drawer, as this is not the norm when developing a navigation drawer icon.



回答5:

In your xml file the shortest way is there is a property in NavigationView Just add it .

app:itemIconSize="12dp"