在Vector Drawable

时间:2017-05-04 12:19:10

标签: android xml drawable android-drawable android-vectordrawable

我找到了这个向量可绘制资源here。我想要做的是翻转它,以便 X 在另一边。

我设法在布局中执行此操作,例如在此example中添加: android:scaleX="-1" 到我的ImageView,它的工作原理。

现在我想直接在Vector Drawable中更改它,但是当我尝试下面的代码时,它是不可见的。

account_remove.xml:

<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportHeight="24"
android:viewportWidth="24">

<group
    android:name="rotationGroup"
    android:scaleX="-1" >

<path
    android:fillColor="#FFFFFF"
    android:pathData="M15,14C17.67,14 23,15.33 23,18V20H7V18C7,15.33 12.33,14 15,14M15,12A4,4 0 0,1 11,8A4,4 0 0,1 15,4A4,4 0 0,1 19,8A4,4 0 0,1 15,12M5,9.59L7.12,7.46L8.54,8.88L6.41,11L8.54,13.12L7.12,14.54L5,12.41L2.88,14.54L1.46,13.12L3.59,11L1.46,8.88L2.88,7.46L5,9.59Z" />
</group>
</vector>

当我添加:

    android:pivotX="10.0"
    android:pivotY="10.0"

到我的rotationGroup,它向右倾斜。

我应该将哪些值添加到我的rotationGroup以使其正常工作?

1 个答案:

答案 0 :(得分:22)

你几乎是在做错,只是错误的支点。

需要翻转图像的中心,因此查看视口的全宽为24,因此枢轴点需要为12。

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="24dp"
    android:height="24dp"
    android:viewportHeight="24"
    android:viewportWidth="24">

    <group
        android:name="rotationGroup"
        android:pivotX="12"
        android:scaleX="-1" >

        <path
            android:fillColor="#FFFFFF"
            android:pathData="M15,14C17.67,14 23,15.33 23,18V20H7V18C7,15.33 12.33,14 15,14M15,12A4,4 0 0,1 11,8A4,4 0 0,1 15,4A4,4 0 0,1 19,8A4,4 0 0,1 15,12M5,9.59L7.12,7.46L8.54,8.88L6.41,11L8.54,13.12L7.12,14.54L5,12.41L2.88,14.54L1.46,13.12L3.59,11L1.46,8.88L2.88,7.46L5,9.59Z" />
    </group>
</vector>