android studio中的矢量资产

android studio中的矢量资产,android,vector,layout,Android,Vector,Layout,如何在android studio中使用矢量图形 如何以编程方式更改矢量图形颜色?可能吗 您能告诉我矢量图形在android中是如何工作的吗?您不能在运行时更改单个路径的颜色。 但是可以使用setTint更改整个向量的颜色 <ImageView android:id="@+id/vectorImageView" android:layout_width="wrap_content" android:layout_height="wrap_content"

如何在android studio中使用矢量图形

如何以编程方式更改矢量图形颜色?可能吗


您能告诉我矢量图形在android中是如何工作的吗?

您不能在运行时更改单个路径的颜色。

但是可以使用setTint更改整个向量的颜色

 <ImageView
     android:id="@+id/vectorImageView"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:tint="@color/my_nice_color"
     android:src="@drawable/ic_vector_drawable"
     android:scaleType="fitCenter" />

DrawableCompat.setTint(myImageView.getDrawable(),ContextCompat.getColor(context, R.color.another_nice_color));

setTint(myImageView.getDrawable(),ContextCompat.getColor(context,R.color.other_nice_color));


VectorDrawable与Android中的任何drawable一样。下面我将给出一个简单的可矢量绘制的xml文件。您可以在Android Studio中调整数据,并查看形状(图形)如何变化

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

    <path
        android:pathData="M  162   8
        q    -07    00   -41    26
        q    -34    27   -50    64
        q    -25    59   -19   117
        q     07    70    53   121
        q     57    63   151    62
        q     87   -01   140   -66
        q     46   -55    48  -142
        q     01   -56   -34  -105
        q    -38   -52   -77   -70
        l    -29   -11
        q     16   -01    31   -02
        q     59   -01   119   -02     "

        android:strokeLineCap="round"
        android:strokeColor="#f00f"
        android:fillColor="#00000000"
        android:strokeWidth="32"/>



</vector>

另外,请阅读有关VectorDrawable和AnimatedVectorDrawable的文档

虽然可以执行路径变形、其他类型的动画(如trimPathEnd等),但不能执行其他操作(如以编程方式更改笔划颜色)

希望这有帮助