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

Cot*_*nyo 6 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>
Run Code Online (Sandbox Code Playgroud)

我刚才看到一个叫做的课 LayerDrawable.有谁知道如何LayerDrawable通过编写代码或膨胀现有的xml 将我的xml文件转换为这样的文件 ?

Gar*_*yan 2

你应该使用该Resources.getDrawable(int id)方法。这是文档:http://developer.android.com/reference/android/content/res/Resources.html#getDrawable(int) 它会膨胀任何类型的可绘制资源。您唯一要做的就是将返回的可绘制对象转换为您需要的最具体的类型(在您的情况下为LayerDrawable)。这是一个例子:

// calling from Activity
LayerDrawable d = (LayerDrawable) getResources().getDrawable(R.drawable.my_drawable);
Run Code Online (Sandbox Code Playgroud)