Dav*_*vid 349 android deprecated android-resources android-color
使用:
buildToolsVersion "22.0.1",
targetSdkVersion 22在我的gradle文件中.
我发现有用的getResources().getColor(R.color.color_name)是不推荐使用的.
我应该用什么呢?
Bar*_*ine 821
看起来最好的方法是使用:
ContextCompat.getColor(context, R.color.color_name)
Run Code Online (Sandbox Code Playgroud)
这将适当地选择Marshmallow两参数方法或pre-Marshmallow方法.
yfs*_*fsx 45
好吧,它在Android M中被弃用,所以你必须为android M和更低版本做例外.只需在getColor功能上添加当前主题.你可以获得当前的主题getTheme().
这将做片段的伎俩,你可以替换getActivity()使用getBaseContext(),yourContext等它把你当前上下文
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
yourTitle.setTextColor(getActivity().getResources().getColor(android.R.color.white, getActivity().getTheme()));
}else {
yourTitle.setTextColor(getActivity().getResources().getColor(android.R.color.white));
}
Run Code Online (Sandbox Code Playgroud)
*ps:颜色在M中已弃用,但在L中不推荐使用drawable
Mah*_*ade 30
您需要使用ContextCompat.getColor(),它是Support V4库的一部分(因此它适用于所有以前的API).
ContextCompat.getColor(context, R.color.my_color)
Run Code Online (Sandbox Code Playgroud)
如文档中所述,"从M开始,返回的颜色将针对指定的Context主题设置样式".所以不用担心.
您可以通过将以下内容添加到app build.gradle中的dependencies数组来添加Support V4库:
compile 'com.android.support:support-v4:23.0.1'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
168458 次 |
| 最近记录: |