2017-06-15 115 views
1

文件称:为什么getResources()。getColor(int)已弃用?

这种方法在API级别被废弃23. getColor(int, Theme) 代替。

许多帖子指出ContextCompat.getColor(Context, int)方法作为替代。

而且该文件解释了Theme参数:

主题Resources.Theme:用于样式颜色属性的主题, 可以为null。

你能解释一下主题如何影响颜色?

回答

2

一些复杂的颜色,如android.content.res.GradientColor(这是一个VectorDrawable内部使用),需要一个主题,以膨胀的梯度,因为你可以有这样一个定义:

<gradient xmlns:android="http://schemas.android.com/apk/res/android"> 
    <android:startColor="?android:attr/colorPrimary"/> 
    <android:endColor="?android:attr/colorControlActivated"/> 
    <android:type="linear"/> 
</gradient> 
+0

我明白了。 Resources类也有一个getColorStateList(int,Theme)方法和该方法的不赞成使用的版本。 – ssynhtn

相关问题