如何以编程方式更改xml可绘制属性

时间:2018-09-25 18:55:03

标签: android

我将下面的代码用作可绘制对象,但在运行时我想更改其颜色,但不能将findViewById与返回的可绘制对象一起使用

Drawable = getDrawable(R.drawable.border_black);


<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

<item android:id="@+id/theme_color">
    <shape android:id="@+id/theme_color_shape" android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">
        <solid android:id="@+id/theme_color_solid" android:color="@color/_black" />
    </shape>
</item>

<item
    android:bottom="-5dp"
    android:right="-5dp"
    android:left="-5dp"
    android:top="0dp">
    <shape android:shape="rectangle" >
        <solid android:color="@android:color/transparent" />

        <stroke android:width="1dp" android:color="#66FFFFFF" />
    </shape>
</item>

</layer-list>

收到此图形对象后,我想更改为黑色以外的其他颜色。

如果仔细阅读代码,您会发现此drawable包含2个元素/项,一个应为动态元素,另一个则不可更改,这就是为什么我不能使用新的ColorDrawable()方法的原因。

0 个答案:

没有答案