如何以编程方式访问基于矢量的Drawable中的项目?

时间:2017-07-24 03:56:09

标签: android android-drawable android-resources

考虑以下基于矢量的可绘制资源......

@绘制/ icon_circled_plus:

<?xml version="1.0" encoding="UTF-8"?>
<vector
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:name="circledMinus"
    android:width="128dp"
    android:height="128dp"
    android:viewportWidth="128"
    android:viewportHeight="128">

    <path
        android:name="border"
        android:pathData="M 124,64 C 124,97.14 97.14,124 64,124 C 30.86,124 4,97.14 4,64 C 4,44.43 13.37,27.04 27.87,16.09 C 37.92,8.5 50.44,4 64,4 C 97.14,4 124,30.86 124,64 Z"
        android:fillColor="#0000FF"
        android:strokeColor="#0000FF"
        android:strokeWidth="8" />

    <path
        android:name="glyph"
        android:pathData="M 24,71 L 104,71 L 104,57 L 24,57 L 24,71 Z"
        android:fillColor="#FFFFFF" />

</vector>

我知道我可以在我的布局文件中使用它:

<ImageView
    android:id="@+id/mainImageView"
    android:layout_width="match_parent"
    android:layout_height="32dp"
    android:src="@drawable/icon_circled_plus" />

我的问题是如何以编程方式访问drawable中的各个元素,以便我可以在代码中修改它们?

例如,&#39; border&#39;同时具有蓝色的填充和描边颜色。如果我想根据某些应用程序逻辑将它们更改为红色怎么办?这可以在不必将其转换为自定义绘图或创建多个可绘制资源的情况下完成吗?

0 个答案:

没有答案