膨胀图层 - 在android中的形状列表

时间:2013-08-03 12:55:45

标签: android android-layout android-inflate layer-list

我的drawable文件夹中有以下文件名为/drawable/mybkg.xml。我想给它充气,这样我就可以通过编程方式更改颜色。这在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 个答案:

答案 0 :(得分: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);