如何在Android中以编程方式修改图层列表?

如何在Android中以编程方式修改图层列表?,android,Android,我将图层列表设置为Textview的背景:- <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <!-- Bottom 2dp Shadow --> <item> <shape android:shape="rectangle" > <solid android:color="@android:color/black" /

我将图层列表设置为Textview的背景:-

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

<!-- Bottom 2dp Shadow -->
<item>
    <shape android:shape="rectangle" >
        <solid android:color="@android:color/black" />

        <corners android:radius="15dp" />
    </shape>
</item>

<!-- Blue Top color -->
<item
    android:bottom="1.5px"
    android:right="1px">
    <shape android:shape="rectangle" >
        <solid android:color="#2E93FA" />

        <corners android:radius="15dp" />
    </shape>
</item>


--> 我需要在这个图层列表的列表视图中显示不同的颜色


我需要通过代码以编程方式(动态)修改第二项。有人能帮忙吗?

看一看
层可绘制的
,因为它是从XML创建的,并在运行时使用

例如:

my_drawable.xml:

什么是getResources()?
<solid android:color="#2E93FA" />

<corners
    android:radius="15dp" />
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:id="@+id/gradientDrawble">
        <shape android:shape="rectangle" >
            <gradient
                android:endColor="#897343"
                android:startColor="#345456" />
            <corners android:radius="15dp" />
        </shape>
    </item>
LayerDrawable layerDrawable = (LayerDrawable) getResources()
    .getDrawable(R.drawable.my_drawable);
GradientDrawable gradientDrawable = (GradientDrawable) layerDrawable
    .findDrawableByLayerId(R.id.gradientDrawble);
gradientDrawable.setCornerRadius(50);