Как автоматически масштабировать значки меню на панели инструментов Android?

В своей активности на Android я попытался добавить значок меню на панель инструментов следующим образом:

toolbar.inflateMenu(R.menu.toolbar_menu)

Меню определяется с помощью векторного рисования на Android:

<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/toolbar_menu"
        android:icon="@drawable/menu"
        android:title="Menu"
        app:showAsAction="always"
        />

</menu>

Drawable:

<!-- drawable/menu.xml -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:height="24dp"
    android:width="24dp"
    android:viewportWidth="24"
    android:viewportHeight="24">
    <path android:fillColor="#000" android:pathData="M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z" />
</vector>

Но в эмуляторе (Nexus 5X слева, Nexus 10 справа) значок меню не масштабируется автоматически, как я ожидал:

Это происходит в соответствии с API 21 и API 26.

Я думал, что использование векторных объектов рисования должно было привести к автоматическому масштабированию изображений, но здесь этого явно не происходит. Как сделать так, чтобы это меню масштабировалось правильно, не прибегая к растровым изображениям для каждого разрешения?

1 ответ

Попробуйте добавить android:scaleType="fitXY"?

Подобная проблема здесь

Другие вопросы по тегам