如何自动缩放 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 中的菜单项 (<item.../>
) 不会执行任何操作。将其添加到可绘制对象中的 <vector.../>
元素不会执行任何操作。以上是关于如何自动缩放 Android 工具栏菜单图标?的主要内容,如果未能解决你的问题,请参考以下文章
在工具栏溢出菜单中显示菜单项图标时,这种奇怪的情况是如何发生的?