当前位置: 首页 > 知识库问答 >
问题:

如何在按钮单击时更改矢量可绘制路径的颜色

郑俊彦
2023-03-14

随着新的android支持更新,矢量绘图可以向后兼容。我有一个带有各种路径的矢量图像。我希望路径的颜色在单击按钮时改变,或者根据输入值以编程方式改变。是否可以访问矢量路径的名称参数?然后更改颜色。

共有3个答案

锺离声
2023-03-14

有几种方法可以做同样的事情,但这对Vector Drawables和SVG(Local/Network)都适用。

imageView.setColorFilter(ContextCompat.getColor(context, 
R.color.headPink), android.graphics.PorterDuff.Mode.SRC_IN);

(将R.color.headPink更改为您选择的颜色)

王航
2023-03-14

使用它来更改矢量可绘制对象中的路径颜色

VectorChildFinder vector = new VectorChildFinder(this, R.drawable.my_vector, imageView);

VectorDrawableCompat.VFullPath path1 = vector.findPathByName("path1");
path1.setFillColor(Color.RED); 

图书馆在这里: https://github.com/devsideal/VectorChildFinder

常永怡
2023-03-14

可以使用setTint更改整个矢量的颜色。

您必须在布局文件中设置ImageView,如下所示:

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

然后更改图像的颜色:

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

注意:如果矢量可绘制对象设置为图像视图作为背景,则 myImageView.getDrawable() 会给出空点异常。

 类似资料: