android-6.0- Marshmallow (API 23) 的getColor(int id) deprecated 过时的替换方案

根据开发文件的描述,这个getColor(int id)方法在M之后被标识为过时的方法(Deprecated)

它的替换方法要求两个参数,一个是颜色资源ID ,一个是主题样式对象

getColor(int id, Recources.Theme theme)

我没有
Recources.Theme theme

那么现在,我仍想兼容使用这个方法,那可使用兼容方法

ContextCompat.getColor(context, R.color.color_name)

使用兼容库方式
可以在代码中添加Support V4库的依赖
在你的APP文件 build.gradle添加(具体的版本你可以根据实际情况选择)

compile 'com.android.support:support-v4:23.0.1'# or any version above

这个兼容方法是兼容包Support V4库所提供的(那么说,API Level4之后
版本可以兼容使用)

API level版本兼容处理
在代码中,可以根据API对当前运行

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
    getColor(int id, Recources.Theme theme)
}else{
    getColor(int id)
}

怎么获取Theme
可以通当前Context上下文对象调用getTheme() 获取当前资源样式主题Theme
例如:
在Activity中,可直接调用getTheme()
在Fragment中,可以选getActivity(),getBaseContext(), yourContext, etc

你可能感兴趣的:(android-6.0- Marshmallow (API 23) 的getColor(int id) deprecated 过时的替换方案)