在 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 图像的主要内容,如果未能解决你的问题,请参考以下文章
Android Drawable Mipmap Vector使用及Vector兼容