【问题标题】:Android mirror vector drawableAndroid 镜像矢量可绘制
【发布时间】:2016-03-31 09:41:12
【问题描述】:

我使用了一个材质图标 (ic_play_arrow_black_24dp),用矢量工作室导入了它。

现在我希望箭头也指向另一个方向,而不创建第二个向量。这在 xml 中是否可行?如何实现?

我在两个浮动操作按钮中使用drawable,一个用于下一个,另一个用于上一个。

编辑 这是fab按钮的XML。我已经尝试过旋转和缩放,但它不起作用

<android.support.design.widget.FloatingActionButton
    android:id="@+id/previous"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="start|bottom"
    android:layout_marginBottom="0dp"
    android:layout_marginEnd="80dp"
    android:layout_marginStart="0dp"
    android:layout_marginTop="0dp"
    android:src="@drawable/next_prev_24dp"
    app:layout_anchor="@id/next"
    app:layout_anchorGravity="left" />

【问题讨论】:

标签: android android-studio android-layout vector drawable


【解决方案1】:

对于那些使用 ImageViewTextViewEditText 的人来说,Scale 可以完美运行。使用

android:scaleX="-1" //To flip horizontally or
android:scaleY="-1" //To flip vertically

或者试试

android:rotationX="180" // for horizontal
android:rotationY="180" // for vertical

或者简单地rotation="180" 表示垂直

android:rotation="180" // for vertical

编辑:附加
如果您想在更改语言 RTL/LTR(“从右到左”/“从左到右”)时翻转/镜像图标/drawable,在 android vector drawable 中有一个很好的方法,只需选中 ckeckbox Enable RTL 布局的自动镜像

=> 右键单击​​可绘制文件夹 => 新建 => 矢量资源 => 选择可绘制 => 选中复选框

.

【讨论】:

    【解决方案2】:

    我在Windows 10 中使用AndroidStudio 3.0.1

    好吧,不需要创建另一个矢量图像,您可以使用一个矢量图像来完成,只需确保在导入 vector image 时执行以下步骤

    所以, 照常创建vector_drawable

    如果有人不知道,

    比这里..

    1.)右键单击您应用的package

    2.)然后导航到New =&gt; Vector Asset

    3.) 选择您想要的图标,在@reebov 的情况下,它将是ic_arrow_back_black_24dp

    4.) 你会发现Checkbox 带有选项 Enable auto mirroring for RTL layout

    编辑

    您也可以在您的 XML 矢量文件中设置android:autoMirrored="true"

    更多信息见下图

    你就完成了。 :)

    【讨论】:

      【解决方案3】:

      在您的 XML 矢量文件中设置android:autoMirrored="true"

      【讨论】:

        【解决方案4】:

        还有另一种镜像可绘制对象的方法。可以修改xml文件添加&lt;group&gt;标签来镜像镜像(这里是垂直的)

        <vector xmlns:android="http://schemas.android.com/apk/res/android"
            android:width="24dp"
            android:height="24dp"
            android:viewportWidth="30"
            android:viewportHeight="30">
            
            <group
                android:scaleX="-1"
                android:translateX="30"> <!-- viewportWidth here-->
                
                <path
                    android:fillColor="#FFF"
                    android:fillType="evenOdd"
                    android:pathData="M14.667 4V0L9.333 5.333l5.334 5.334v-4c4.413 0 8 3.586 8 8a7.827 7.827 0 0 1-.934 3.733l1.947 1.947a10.574 10.574 0 0 0 1.653-5.68C25.333 8.773 20.56 4 14.667 4zm0 18.667c-4.414 0-8-3.587-8-8 0-1.347.333-2.627.933-3.734L5.653 8.987A10.574 10.574 0 0 0 4 14.667c0 5.893 4.773 10.666 10.667 10.666v4L20 24l-5.333-5.333v4z" />
            </group>
        </vector>
        

        【讨论】:

        • 这就是我要找的。我的图标最初是 rtl。
        【解决方案5】:

        这里是分享图片vectore xml文件 share.xml:

        <vector android:height="24dp" android:tint="#FFFFFF"
            android:viewportHeight="24.0" android:viewportWidth="24.0"
            android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
            <path android:fillColor="#FF000000" android:pathData="M10,9V5l-7,7 7,7v-4.1c5,0 8.5,1.6 11,5.1 -1,-5 -4,-10 -11,-11z"/>
        </vector>
        

        这是 xml 布局文件中的图片:

        <ImageView
              android:layout_width="32dp"
              android:layout_height="32dp"
              android:src="@drawable/share"
              android:scaleX="-1"
              android:scaleType="fitCenter"/>
        

        这条线用于镜像矢量图像:

           android:scaleX="-1"
        

        【讨论】:

          猜你喜欢
          • 2017-08-04
          • 2019-01-01
          • 1970-01-01
          • 2017-10-12
          • 2020-10-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多