如何以编程方式创建图层列表可绘制对象?

how to create layer-list drawable programmatically?

我想以编程方式绘制像我的 icon.xml 这样的形状,但我无法将第二个圆圈嵌入到第一个圆圈中这是我的代码:

icon.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/ok">
<shape
    android:shape="oval">
    <solid android:color="#ffffff" />
    <size android:width="33px" android:height="33px"/>
    <stroke android:width="4px"
        android:color="#ff0000"/>
    <padding android:bottom="8px"
        android:left="8px"
        android:right="8px"
        android:top="8px"/>
</shape>
</item>
<item>
<shape android:shape="oval">
    <solid android:color="#ccff0000"/>
</shape>
</item>

</layer-list>

MainActivity.java

    GradientDrawable layer1 = new GradientDrawable();
    layer1.setShape(GradientDrawable.OVAL);
    layer1.setSize(33,33);
    layer1.setColor(Color.WHITE);
    layer1.setStroke(4,Color.RED);

    GradientDrawable layer2 = new GradientDrawable();
    layer2.setShape(GradientDrawable.OVAL);
    layer2.setColor(Color.BLUE);

    InsetDrawable insetLayer2 = new InsetDrawable(layer1, 8, 8, 8, 8);

    LayerDrawable layerDrawable = new LayerDrawable(new Drawable[]
    {insetLayer2,layer2});
    button.setBackground(layerDrawable);

怎么了?

提前致谢

终于找到答案了。我的问题是如何为圆圈设置填充, 但是我们可以使用 setLayerInset(int index, int l, int t, int r, int b) 分别为两个渐变以编程方式设置填充。