2013-08-03 26 views
6

我在我的可繪製文件夾/drawable/mybkg.xml中有以下文件。我想誇大它,所以我可以以編程方式更改顏色。在Android中可能嗎?充氣在Android的形狀層列表

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 

    <item> 
     <shape android:shape="oval" > 
      <padding 
       android:top="5dp" 
       android:bottom="2dp" 
       android:left="2dp" 
       android:right="2dp" /> 

      <solid 
       android:angle="270" 
       android:color="#1bd4f6" /> 

      <stroke 
       android:width="2dp" 
       android:color="#121ce5" /> 
     </shape> 
    </item> 

    <!-- Foreground --> 
    <item> 
     <shape android:shape="oval" > 

      <solid android:color="#1b90f6" /> 
     </shape> 
    </item> 

</layer-list> 

我剛纔看到一個叫LayerDrawable的班。有誰知道我可以通過編寫代碼或膨脹現有的XML來將我的XML文件轉換爲LayerDrawable嗎?

回答

1

您應該使用Resources.getDrawable(int id)方法。這裏是文檔:http://developer.android.com/reference/android/content/res/Resources.html#getDrawable(int) 它膨脹任何形式的可繪製資源。唯一剩下的事情就是將返回的drawable轉換爲您需要的最具體類型(在您的情況下爲LayerDrawable)。這裏是一個例子:

// calling from Activity 
LayerDrawable d = (LayerDrawable) getResources().getDrawable(R.drawable.my_drawable);