在 Vector Drawable 中翻转 Drawable 图像

Posted

技术标签:

【中文标题】在 Vector Drawable 中翻转 Drawable 图像【英文标题】:Fliping Drawable Image in Vector Drawable 【发布时间】:2017-10-02 14:59:06 【问题描述】:

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

我设法在布局中做到这一点,就像在这个 example 中添加: android:scaleX="-1" 到我的 ImageView 并且它有效。

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

account_remove.xml:

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:
    android:
    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 中添加什么值才能使其正常工作?

【问题讨论】:

预览不显示图像或设备?因为上面的链接,一条评论说它没有在预览中显示,但在设备中工作 或尝试使用 android:rotationX="180" 而不是 android:scaleX="-1" 或者你可以找一些svg图片编辑工具,随意编辑图片。 @DivyeshPatel 它不会显示在设备上。我尝试使用android:rotationX="180",但没有成功。 【参考方案1】:

你几乎是这样做的,只是使用了错误的支点。

它需要围绕图像的中心翻转,所以看视口全宽是24,所以轴心点需要在12。

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:
    android:
    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>

【讨论】:

McGear 就是这样,就像一个魅力。谢谢刘易斯。 漂亮.. 你拯救了这一天,谢谢,确实很有魅力 最简单的解决方案? 信息:android:pivotX="Z" 静态 Z 必须是 android:viewportWidth 值的一半

以上是关于在 Vector Drawable 中翻转 Drawable 图像的主要内容,如果未能解决你的问题,请参考以下文章

由于editText获得焦点,drawable没有被点击

Android图片资源获取原则

Android Drawable Mipmap Vector使用及Vector兼容

Android图片处理的一些总结

Android Animated Vector Drawable 无法在 xml 中循环

如何在 res/drawable 中创建子文件夹,就像在 android 的 mipmap 文件夹中一样? [复制]