2010-11-30 38 views
4

如何以編程方式創建此可繪製對象?以編程方式創建一個LayerDrawable對象

<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> 

非常感謝

回答

9

它是非常完整地描述here。只需通過將其構造函數傳遞給Drawable對象來創建LayerDrawable的新實例。

+1

我感興趣的是如何設置的左,右,上,下的參數,和重力。 – Gratzi 2010-11-30 09:39:58

+0

@Gratzi:只需閱讀參考頁面,因爲您需要的只是在那裏......永遠。看看http://developer.android.com/reference/android/graphics/drawable/LayerDrawable.html#setLayerInset(int,int,int,int,int) – 2010-11-30 09:43:48

17

在我閱讀@ OctavianDamiean的答案下的評論之前,這並不太明顯。他的超鏈接被破壞,但爲了以編程方式設置itemandroid:top,android:bottom等,參考LayerDrawablesetLayerInset方法。

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

int index - 在Drawable的索引出Drawable陣列(即你傳遞的LayerDrawable的構造函數參數)要修改。
int l, t, r, b - 設置這些,你會在android:leftandroid:top

相關問題