【问题标题】:Android Studio 1.4: drawable-v21 ignored when using "File/New/Vector Asset" optionAndroid Studio 1.4:使用“File/New/Vector Asset”选项时忽略drawable-v21
【发布时间】:2015-10-19 21:10:59
【问题描述】:

这是我的第一个 SO 问题,所以请不要把我活生生吃掉……这是我的问题:

我通过 Android Studio 1.4 的新选项 - New/Vector Asset 导入了几个图标。如您所知,它可以让您轻松导入和使用矢量绘图并创建 png 以与 API app/build/generated/res/pngs/debug/drawable-<density>(mdpi、ldpi、hdpi 等)中。它还生成所有文件夹的-v21 版本并将矢量可绘制.xmls 放在那里。

当我想为其中一个图标添加波纹效果时,问题就开始了。我已将 .... 无波纹版本放入我的 res/drawable 文件夹中。它看起来像这样:

drawable/ic_settings.xml

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="24dp"
    android:height="24dp"
    android:viewportWidth="24.0"
    android:viewportHeight="24.0">
<path
    android:fillColor="#FFFFFF"
    android:pathData="M12,15.5A3.5,3.5 ...blablabla notimportatnt"/>
</vector>

然后我想在 API >21 中为图标添加波纹。所以到文件夹res/drawable-v21我添加了这个drawable:

drawable-v21/ic_settings.xml

<ripple xmlns:android="http://schemas.android.com/apk/res/android"
     android:color="?android:colorControlHighlight">
<item>
    <vector
        android:width="24dp"
        android:height="24dp"
        android:viewportWidth="24.0"
        android:viewportHeight="24.0">
        <path
            android:fillColor="#FFFFFF"
            android:pathData="M12,15.5A3.5,3.5 0,0....blah blah blah"/>
    </vector>
</item>
</ripple>

现在,当我在 API 21 下运行应用程序时,它不使用来自 drawable-v21 的资源,而是使用来自 app/build/generated/res/pngs/debug/drawable-xxhdpi-v21 的可绘制对象,该绘图自动基于 res/drawable 中的文件生成。所以没有波纹。

当我尝试从 res/drawable/ 中删除无波纹文件时,波纹在 API 21 中再次出现,但应用程序当然会在 API 中崩溃

然后我尝试将图标的波纹版本放入res/drawable文件夹,希望gradle会自动生成png。不 - &lt;ripple&gt; 标签阻止 gradle 生成 png 并且应用程序崩溃

有人偶然发现这种问题吗?知道如何为图标添加波纹吗?

祝你有美好的一天!

【问题讨论】:

  • 我正要问同样的问题..

标签: android android-studio android-gradle-plugin drawable


【解决方案1】:

好的,我找到了解决方案。

在文件夹res/drawable 中,我只留下了可以并且应该自动转换为 png 的矢量 - 所以只有普通的普通图标没有波纹。然后在drawable_v21 中,我放置了可绘制的波纹版本并将其重命名为-ic_settings_ripple.xml。我创建了一个新文件夹layout-v21 并复制了我的布局,但我使用了ic_settings_ripple.xml 而不是ic_settings.xml

所以现在在 API=21 有一个替代布局,它使用其中一个图标的波纹版本。

【讨论】:

    猜你喜欢
    • 2016-02-06
    • 2019-01-30
    • 2020-01-10
    • 1970-01-01
    • 2020-05-06
    • 2016-01-16
    • 2021-06-03
    • 2016-02-17
    • 1970-01-01
    相关资源
    最近更新 更多