最近我看到我的代码中出现了一个lint错误:
应该在这里传递已解析的颜色而不是资源ID:getResources().getColor(R.color.maps_list_background_color)
MyClass.java/myapp/android/maps line 107 Android Lint问题
我知道如何解决它的答案是在错误中,事情是我不明白为什么他们在linter中添加了这个错误.
ter*_*er0 46
采用整数形式的颜色的方法应该传递RGB三元组,而不是实际的颜色资源ID.您必须调用getResources.getColor(resource).
您正在调用的函数期望一个RGB三元组的整数,而不仅仅是颜色资源的id.颜色资源ID仍然是整数,但如果将其用作RGB三元组,则不会产生您期望的颜色.为了为您的颜色传递正确的RGB三元组,您必须通过getResources().getColor(R.color.example_color)调用解决它.
Ray*_*oix 41
由于我仍然在Google上发现这个并且它已被弃用,我想我不妨分享目前这样做的方法.
检查getResources().getColor()是否已被弃用
ContextCompat.getColor(context, R.color.color_name)
Run Code Online (Sandbox Code Playgroud)
由于getResources().getColor()不推荐使用,因此您需要执行以下操作以获取颜色:
int color = ContextCompat.getColor(getContext(),your_color_id);
Run Code Online (Sandbox Code Playgroud)
现在,您具有相对于当前上下文的颜色使用以下方法设置颜色:
your_view.setBackgroundColor(color);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24252 次 |
| 最近记录: |