在drawable pre-lollipop中设置主题颜色?

时间:2018-04-09 19:14:26

标签: android

我一直在我的所有drawable中使用主题属性,但我发现在21之前不支持

是否有我可以使用的方法

<shape android:shape="rectangle"
xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="?attr/background_1" />
<corners android:radius="@dimen/button_corner_radius" />

我的布局中有这样的画面吗?非常感谢。不知道现在该做什么

1 个答案:

答案 0 :(得分:1)

您无法从xml文件中执行此操作。正如您在此answer中所看到的,您必须创建与要使用的背景颜色一样多的不同资源文件。在您的情况下,如果我们调用您的文件shape_drawable.xml:

style.xml中的

<attr name="shape_drawable" format="reference"/>

然后在实际主题中:

// Theme X
<item name="shape_drawable">@drawable/shape_drawable_x</item>
// Theme Y
<item name="shape_drawable">@drawable/shape_drawable_y</item>

其中shape_drawable_x将使用纯色x,shape_drawable_y将使用纯色y。

然后,在您实际使用drawable的地方:

android:src="?attr/shape_drawable"