android - 如何创建内部路径透明的矢量绘图?

标签 android shapes android-vectordrawable

我正在尝试创建一个最喜欢的图标,如下所示。

enter image description here

在创建它时,我需要内部路径(蓝色区域)在结果中是透明的。但是在提供透明颜色时,它显示填充在外部路径中的颜色。即橙色的完整形状。我如何制作具有透明内部路径的矢量可绘制

我的矢量绘图是

<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="72dp"
        android:height="66dp"
        android:viewportHeight="66"
        android:viewportWidth="72">

    <path
        android:fillColor="@android:color/transparent"
        android:pathData="M 0.00 0.00 L 72.00 0.00 L 72.00 66.00 L 0.00 66.00 L 0.00 0.00 Z" />
    <path
        android:fillColor="#F7592B"
        android:pathData="M 20.99 1.04 C 26.30 1.45 30.97 4.88 36.04 5.70 C 40.02 5.23 43.79 2.79 47.70
        1.80 C 56.08 -0.90 65.46 4.21 69.03 11.97 C 71.67 17.65 71.59 24.74 70.62 30.81
        C 68.57 41.48 60.32 50.55 51.81 56.81 C 47.69 59.73 43.11 62.72 38.21 64.12 C
        34.80 65.13 31.23 63.34 28.24 61.86 C 19.69 57.27 11.77 50.76 6.25 42.72 C 0.82
        34.78 -0.33 24.87 1.66 15.60 C 3.69 7.15 12.14 0.18 20.99 1.04 Z" />
    <path
        android:fillColor="#1721dc"
        android:pathData="M 19.98 7.14 C 25.68 7.39 30.87 12.07 36.10 12.99 C 41.30 12.15 46.97 7.14 52.84
        7.35 C 58.72 7.85 63.41 12.52 64.67 18.17 C 65.71 23.40 65.21 29.32 63.25 34.30
        C 59.83 42.88 52.20 49.81 44.38 54.43 C 40.52 56.53 36.81 58.58 32.37 56.70 C
        24.56 53.51 17.02 47.75 12.20 40.77 C 7.31 33.87 5.58 24.79 7.64 16.59 C 9.15
        11.09 14.21 6.98 19.98 7.14 Z" />
</vector>

最佳答案

你有两条路可以走: 1)创建另一个矢量可绘制对象,它将仅绘制外线,而不是重叠两颗心 或者 2)去掉橙色的心,在蓝色的心上加上橙色的描边。只需复制下面的代码并尝试一下。请注意:笔画宽度的一半将进入图像内部,一半将进入图像外部,因此您的图像会略有不同(笔画将更接近图像的中心)

<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="72dp"
    android:height="66dp"
    android:viewportHeight="66"
    android:viewportWidth="72">
    <path
        android:fillColor="#00000000"
        android:strokeColor="#F7592B"
        android:strokeWidth="6"
        android:pathData="M 19.98 7.14 C 25.68 7.39 30.87 12.07 36.10 12.99 C 41.30 12.15 46.97 7.14 52.84
        7.35 C 58.72 7.85 63.41 12.52 64.67 18.17 C 65.71 23.40 65.21 29.32 63.25 34.30
        C 59.83 42.88 52.20 49.81 44.38 54.43 C 40.52 56.53 36.81 58.58 32.37 56.70 C
        24.56 53.51 17.02 47.75 12.20 40.77 C 7.31 33.87 5.58 24.79 7.64 16.59 C 9.15
        11.09 14.21 6.98 19.98 7.14 Z" />
</vector>

结果:click to see the resulting image

关于android - 如何创建内部路径透明的矢量绘图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48224852/

相关文章:

Android 在 RecyclerView OnClickListener 中获取 firebase 推送 ID

android - xml 布局错误,无法转换为维度 : 15

android - 可以使用 GradientColor 完全在 XML 中定义填充或描边的渐变吗?

Android 圆形复选标记动画

android - 使用大量内存的矢量绘图

android - 升级依赖项后无法解析 ActivityTestRule。无法导入 ActivityTestRule

javascript - PhoneGap : ReferenceError: Connection is not defined

android - 创建圆形

html - 基本 CSS 帮助 - 删除形状

Android 使用形状、选择器或列表针对不同状态的不同 EditText 背景