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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,827评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,292评论 4 61
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,773评论 19 139
  • 自动化的盛行,发展中国家的崛起,对我们的工作和生活带来了重大的影响,组织财富的丰富是我们的生活发生了重大改变,我们...
    帅小周阅读 6,518评论 0 0
  • 昨天是全球宅男们的狂欢节,难得不必遮遮掩掩光明正大的和媳妇儿、女朋友共同观赏世界顶级美好肉体~ 屏幕上满满的大长腿...
    终南山阅读 1,670评论 0 0