在矢量图中翻转可绘制的图像

29

我在这里找到了这个可缩放矢量图形资源(链接)。我想做的是翻转它,这样X就会在另一边。

我成功地在布局中做到了这一点,就像在此示例中所示,通过添加: android:scaleX="-1" 到我的ImageView上,它起作用了。

现在我想直接在可缩放矢量图形中更改它,但当我尝试下面的代码时,它是不可见的。

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中才能使其正确工作?


预览中没有显示图片或设备?因为上面的链接,有一条评论说它在预览中没有显示,但在设备上可以正常工作。 - Divyesh Patel
尝试使用android:rotationX="180"代替android:scaleX="-1"。 - Divyesh Patel
或者你可以找一些SVG图像编辑工具,根据自己的喜好对图像进行编辑。 - X3Btel
@DivyeshPatel 它在设备上没有显示出来。我尝试使用 android:rotationX="180",但它没有起作用。 - Banana
1个回答

81

你差点就做到了,只是轴心不对。

需要以图像中心为轴心翻转,因此查看视口时,完整宽度为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>

1
信息:android:pivotX="Z" 中的静态 Z 必须是您的 android:viewportWidth 值的一半。 - Harpreet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接