getResources().getColor(R.color.color_name)
现已在API Level 23中弃用,但可以通过添加Color Theme作为第二个参数来实现,例如
getResources().getColor(R.color.color_name, Theme)
根据新文档,但当我传递主题的空值,如
getResources().getColor(R.color.color_name, null)
我的应用程序崩溃了。也许我在理解中遗漏了一些东西。请提前帮助,而不是。
答案 0 :(得分:49)
从API 23开始不推荐使用旧方法,新方法仅存在于API 23+中。您正在尝试在运行API< 23。
的设备上调用新方法您可以执行API级别检查并调用相应的方法,也可以使用support-v4库中的ContextCompat.getColor(Context, int)
。
答案 1 :(得分:6)
试试这个..
int color = Color.parseColor(getResources().getString(R.color.color_name));
而不是
int color = getResources().getColor(R.color.color_name);
答案 2 :(得分:2)
如上所述[{3}},您可以按如下方式使用here:
char buffer[100];
int buffer_full;
// write interesting data to the buffer. does not read.
void fill_buffer(char* buffer, size_t buffsz);
// read the interesting data in the buffer. does not write.
void use_buffer(const char* buffer, size_t buffsz);
void writer_thread()
{
if (!buffer_full) {
fill_buffer(buffer, sizeof(buffer));
// is a memory barrier needed here?
buffer_full = 1;
}
}
void reader_thread()
{
if (buffer_full) {
use_buffer(buffer, sizeof(buffer));
// is a memory barrier needed here?
buffer_full = 0;
}
}
答案 3 :(得分:0)
您可以使用它来设置适配器类的颜色
View view=super.getView(position,convertView,parent);
view.setBackgroundColor(ContextCompat.getColor(context, R.color.blue_100));