使用:
buildToolsVersion "22.0.1"
,
我的gradle文件中有targetSdkVersion 22
。
我发现不推荐使用有用的getResources().getColor(R.color.color_name)
。
我应该使用什么?
答案 0 :(得分:39)
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()
方法。