Android-使用不同的背景颜色为多个视图添加边框?

Android-使用不同的背景颜色为多个视图添加边框?,android,xml,android-layout,border,android-view,Android,Xml,Android Layout,Border,Android View,我一直在使用以下方法向视图顶部添加边框: <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape android:shape="rectangle"> <solid android:color=

我一直在使用以下方法向视图顶部添加边框:

<?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item> 
        <shape android:shape="rectangle">
            <solid android:color="#b7b7b7" /> 
        </shape>
    </item>   
    <item android:top="1px" >  
        <shape android:shape="rectangle"> 
            <solid android:color="#5f5f5f" />
            </shape>
    </item>    
</layer-list>

上述内容在drawable文件夹中自己的xml文件中指定,然后设置为视图中显示边框的背景

现在,这里的问题是这个边框被“硬编码”为特定的背景色。无论我在哪个视图上应用它,背景色都将更改为#5F5F


我希望能够设置任何背景颜色,然后应用边框。换句话说,我可以有一个红色视图、一个绿色视图和一个蓝色视图。假设我想在每个边框的顶部放置相同的边框。有没有一种方法可以做到这一点,而无需制作上述xml文件的3个副本并更改每个副本中的颜色?

您必须为图层分配一个id,然后使用它来获取要更改的可绘制图形。这些方法在xml本身中无法做到吗?如果我必须多次复制上面的XML,有没有办法在同一个XML文件中完成这一切?它似乎不允许在层列表本身上设置id。您必须在运行时更改可绘制文件或复制xml文件