【发布时间】: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。不 - <ripple> 标签阻止 gradle 生成 png 并且应用程序崩溃
有人偶然发现这种问题吗?知道如何为图标添加波纹吗?
祝你有美好的一天!
【问题讨论】:
-
我正要问同样的问题..
标签: android android-studio android-gradle-plugin drawable