getResources().getDrawable()过时问题

前言

在Android的开发中我们经常会遇到过时的方法,当时为了图快、编译时也不会报错,也就没有去理会。随着慢慢整理代码,看到过时地方确实不美观,也会影响后期的兼容性问题,故特此记录下。本篇记录下关于getResources().getDrawable()过时问题。

 

问题

我们经常会根据不同场景显示不同背景,如下图,使用resource下面的getDrawable()方法会提示过时。

 

解决

1、使用drawable资源

//null的意思:不为其设置theme主题,如果想设置主题,请在此处改为该主题即可
recycler.background = ResourcesCompat.getDrawable(resources, R.drawable.bg_white_cn8, null)

2、使用默认Activity主题

recycler.background = ContextCompat.getDrawable(this, R.drawable.bg_white_cn8)

 

总结

注意:ContextCompat.getDrawable() 方法要求 API 级别为 21 或更高版本。

如果您的应用程序需要兼容 Android 4.4 及以下的版本,可以使用 AppCompatResources.getDrawable() 方法来替代 ContextCompat.getDrawable() 方法。

这两个方法的使用方式相似,只是前者需要使用 appcompat-v7 库。

 

posted @ 2023-07-02 14:33  渣娃  阅读(834)  评论(0编辑  收藏  举报