以编程方式创建LayerDrawable对象

时间:2010-11-30 09:11:12

标签: 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>

2 个答案:

答案 0 :(得分:17)

在我阅读@ OctavianDamiean的答案之前,这一点并不太明显。他的超链接已损坏,但为了以编程方式设置item android:topandroid:bottom等,请参考LayerDrawable&#39; s {{ 3}}方法。

setLayerInset (int index, int l, int t, int r, int b)

int index - 您想要的Drawable数组中的Drawable索引(您作为LayerDrawable的构造函数参数传入)修改。
int l, t, r, b - 按照android:leftandroid:top

的方式设置

答案 1 :(得分:9)

它完全被描述为here。只需通过向其构造函数传递一个LayerDrawable对象数组来创建Drawable的新实例。