2

我想在我的应用程序中使用许多 ShapeDrawables,它们都相似,但颜色不同等。显然我可以将它们全部定义在单独的 xml 文件中,但是有没有一种更有效的方法来拥有一个 xml 定义,实例化各种对象并在代码或 xml 中更改颜色?您也许可以通过在 xml 中定义的一个 ShapeDrawable 上调用 mutate() 来做到这一点,但这会返回一个 Drawable,而不是一个可绘制的形状。

4

2 回答 2

0

实际上,可以按照您的要求进行操作,
这篇文章向您展示了如何做到这一点。

我试过了,效果很好。我还没有找到如何从列表中引用单个可绘制对象。
似乎级别列表旨在用于单个对象以表示对象的不同状态。尽管在这种情况下,我们将其用作可绘制容器以避免包含许多小文件。
也许未来的安卓版本将支持专用的可绘制容器。

于 2013-02-25T08:34:30.280 回答
0

也许使用GradientDrawable而不是 ShapeDrawable。

于 2010-08-16T18:09:37.707 回答