虽然不可能在Lollipop前设备上引用drawables的样式属性,但它可以用于颜色状态列表。 您可以使用Android支持库中的AppCompatResources.getColorStateList(Context context,int resId)方法。 缺点是您必须以编程方式设置这些颜色状态列表。

这是一个非常基本的例子。

彩色/ my_color_state.xml

需要颜色状态列表的小部件:

android:id="@+id/radio_button"

android:text="My Radio" />

而最重要的是:

ColorStateList csl = AppCompatResources.getColorStateList(context, R.color.my_color_state);

RadioButton r = (RadioButton) findViewById(R.id.radio_button);

r.setTextColor(csl);

好吧,不是最优雅或最短的方式,但这是Android支持库使其适用于Android的旧版本(前Lollipop)。

不幸的是,drawables的类似方法不适用于样式属性。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐