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 ?
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>
Got Solution
Make Below entry in dimens.
<dimen name="design_navigation_icon_size">48dp</dimen>
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:
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.
In your xml file the shortest way is there is a property in NavigationView
Just add it .
app:itemIconSize="12dp"