不推荐使用getResources()。getColor()

时间:2015-08-05 21:16:20

标签: android deprecated android-resources android-color

使用: buildToolsVersion "22.0.1", 我的gradle文件中有targetSdkVersion 22

我发现不推荐使用有用的getResources().getColor(R.color.color_name)

我应该使用什么?

2 个答案:

答案 0 :(得分:39)

好吧,它在Android M中已被弃用,所以你必须为android M和更低版本制作异常。只需在getColor函数上添加当前主题即可。您可以使用getTheme()获取当前主题。

这将在片段中执行此操作,您可以将getActivity()替换为包含当前上下文的getBaseContext()yourContext

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
    yourTitle.setTextColor(getActivity().getResources().getColor(android.R.color.white, getActivity().getTheme()));
}else {
    yourTitle.setTextColor(getActivity().getResources().getColor(android.R.color.white));
}

* p.s:颜色在M中已弃用,但在L

中不推荐使用drawable

答案 1 :(得分:20)

  

我发现不推荐使用有用的getResources()。getColor(R.color.color_name)。

根据the documentation,它在API级别21中未被弃用。

在M Developer Preview中不推荐使用 。但是,替换方法(采用颜色资源ID和Create / Mail / Memo对象的双参数getColor())仅在M Developer Preview中可用。

因此,现在,继续使用单参数Resources.Theme方法。今年晚些时候,请考虑在Android M设备上使用双参数getColor()方法,在旧设备上使用已弃用的单参数getColor()方法。