如何自动缩放 Android 工具栏菜单图标?

Posted

技术标签:

【中文标题】如何自动缩放 Android 工具栏菜单图标?【英文标题】:How to autoscale Android toolbar menu icons? 【发布时间】:2018-08-17 11:49:16 【问题描述】:

在我的 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/menu.xml -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:
    android:
    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"

类似问题here

【讨论】:

但是我应该在哪里添加呢?将其添加到菜单 XML 中的菜单项 (&lt;item.../&gt;) 不会执行任何操作。将其添加到可绘制对象中的 &lt;vector.../&gt; 元素不会执行任何操作。

以上是关于如何自动缩放 Android 工具栏菜单图标?的主要内容,如果未能解决你的问题,请参考以下文章

在工具栏溢出菜单中显示菜单项图标时,这种奇怪的情况是如何发生的?

如何使 Qt 图标(在菜单栏和工具栏中)更大?

如何在使用Android Jetpack导航时禁用导航图标

Android中toolbar遮盖住其他控件该怎么解决

如何在工具栏中实现自动完成 google place api - Android

wangeditor5修改工具栏图标大小