以编程方式创建LayerDrawable对象

Gra*_*tzi 4 android

如何以编程方式创建此drawable?

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
  <bitmap android:src="@drawable/android_red"
    android:gravity="center" />
</item>
<item android:top="10dp" android:left="10dp">
  <bitmap android:src="@drawable/android_green"
    android:gravity="center" />
</item>
<item android:top="20dp" android:left="20dp">
  <bitmap android:src="@drawable/android_blue"
    android:gravity="center" />
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

way*_*ord 17

在我阅读@ OctavianDamiean的答案之前的评论之前,这并不是太明显.他的超链接被打破,但为了以编程方式设置一个itemandroid:top,android:bottom等等,参考LayerDrawablesetLayerInset方法.

setLayerInset (int index, int l, int t, int r, int b)
Run Code Online (Sandbox Code Playgroud)

int index- 要修改DrawableDrawable数组外部索引(作为LayerDrawable构造函数参数传入).
int l, t, r, b-设置这些,你会在android:left,android:top


Oct*_*ean 9

这里几乎完全描述了它.只需LayerDrawable通过向构造函数传递一个Drawable对象数组来创建一个新实例.