2013-08-03 27 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);