我喜欢 Android 中的 VectorDrawable,但是从 svg 导入的一些 Drawable 在 Android Studio 和 Lollipop+ 设备中无法正确显示。但是,生成的 PNG 很好,因此 drawable 在旧版本的 android 上可以正确显示。有趣的是,矢量可绘制对象在 Android N 预览版上正确呈现。
我目前的解决方法是获取生成的 png,将它们移动到相应drawable-dpi
的文件夹并删除矢量。
示例矢量可绘制:
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:width="160dp"
android:height="160dp"
android:viewportHeight="161.80794"
android:viewportWidth="161.80745">
<path
android:fillColor="#fff"
android:pathData="M81.9,90.59c11.32,0 20.53,-11.26 20.53,-25.1 0,-13.84 -9.21,-25.1 -20.53,-25.1 -5.58,0 -10.8,2.68 -14.69,7.54a28.09,28.09 0,0 0,-5.84 17.56C61.37,79.33 70.58,90.59 81.9,90.59ZM81.9,44.97c8.8,0 15.97,9.21 15.97,20.53 0,11.32 -7.17,20.53 -15.97,20.53s-15.97,-9.21 -15.97,-20.53C65.93,54.18 73.1,44.97 81.9,44.97ZM97.87,86.03a2.28,2.28 0,1 0,0 4.56,15.99 15.99,0 0,1 15.97,15.97 2.29,2.29 0,0 1,-2.28 2.28h-59.31a2.29,2.29 0,0 1,-2.28 -2.28A15.99,15.99 0,0 1,65.94 90.59a2.28,2.28 0,0 0,0 -4.56A20.55,20.55 0,0 0,45.4 106.56a6.85,6.85 0,0 0,6.84 6.84h59.31A6.85,6.85 0,0 0,118.4 106.56,20.56 20.56,0 0,0 97.87,86.03Z" />
<path
android:fillColor="#fff"
android:pathData="M80.9,161.81A80.9,80.9 0,1 1,161.81 80.9,81 81,0 0,1 80.9,161.81ZM80.9,4.32A76.59,76.59 0,1 0,157.49 80.9,76.67 76.67,0 0,0 80.9,4.32Z" />
</vector>
是否有适当的解决方案来修复这些可绘制对象,例如转换器?或者至少要自动从构建中排除向量,而只是针对所有 API 级别的 pngs?