'fun getColor(id: Int): Int' is deprecated. Deprecated in Java.的处理

54 阅读1分钟

1、getResources.getColor过期

image.png

2、正确的代码

val color1 = ContextCompat.getColor(context, R.color.teal_200)
val color2 = ContextCompat.getColor(context, R.color.teal_700)
val color3 = ContextCompat.getColor(context, R.color.black)

setColorSchemeColors(
    color1,
    color2,
    color3,
)

发现过期的提示已经消失了:

image.png

3、颜色获取方法说明

| 方法 | 是否推荐 | 说明 |

| Resources.getColor(int id) | ❌ 已废弃 | 不支持主 题属性和矢量资源

| ContextCompat.getColor(context, R.color.xxx) | ✅ 推荐 | 向后兼容且安全

| Resources.getColorStateList(int id)| ✅ 如果需要状态列表 | 支持不同状态下的颜色变化

所以我们使用 ContextCompat.getColor(context, R.color.xxx) 替代 Resources.getColor(int id) 就可以了。

表格展示:

image.png