我的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
?
答案 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);