Android LayerDrawable:如何通过编程设置图层坐标



给出了以下层列表的XML代码:

<layer-list>
    <item>
        <shape android:shape="rectangle" >
            <solid android:color="@color/my_color_a" />
        </shape>
    </item>
    <item android:left="5dp">
        <shape android:shape="rectangle" >
            <solid android:color="@color/my_color_b" />
        </shape>
    </item>
</layer-list>

为了动态地做一些事情,我需要以编程方式将此代码重新构建为LayerDrawable类。此代码存在:

ShapeDrawable layer0 = new ShapeDrawable(new RectShape());
ShapeDrawable layer1 = new ShapeDrawable(new RectShape());
LayerDrawable layerDrawable = new LayerDrawable(new Drawable[] {layer0, layer1});

如何将android:left="5dp"翻译成Java代码?此属性没有setter。

尝试setLayerInset(layer, leftOffset, topOffset, rightOffset, bottomOffset)

有关更多帮助,请参阅LayerDrawable文档。