最近在做项目的优化工作,在使用Android Studio的Inspect Code静态检测项目所存在的Error和Warning时,突然看见有一个警告Context.getResources().getDrawable(int res)已经过时了,稍微有些强迫症的我对于此类警告必须零容忍。于是在网上搜索一下看见广大网友给出的解决方案就是:
Context.getDrawable(int id, Resources.Theme theme), 第二个参数@theme可以为空值.或Context.getDrawable(int)。
但是这个方法的兼容性不是很好,只有在API Level 21及以上才能使用(也就是Android5.0以上)。最后找到了以下解决方案:
ContextCompat.getDrawable(context,R.drawable.icon_test);
这个方法看着容易理解,同时谷歌也推荐使用这种方法。
网友评论