【问题标题】:How to autoscale Android toolbar menu icons?如何自动缩放 Android 工具栏菜单图标?
【发布时间】: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: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 下。

我认为使用矢量可绘制对象应该可以生成自动缩放的图像,但这里显然不会发生这种情况。如何在不使用按分辨率光栅图像的情况下正确缩放此菜单?

【问题讨论】:

    标签: android android-toolbar android-vectordrawable


    【解决方案1】:

    尝试添加android:scaleType="fitXY"

    类似问题here

    【讨论】:

    • 但是我应该在哪里添加呢?将其添加到菜单 XML 中的菜单项 (&lt;item.../&gt;) 不会执行任何操作。将其添加到可绘制对象中的 &lt;vector.../&gt; 元素不会执行任何操作。
    猜你喜欢
    • 2015-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-28
    相关资源
    最近更新 更多