在安卓中膨胀图层列表的形状。

7

我在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个回答

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接