2017-04-06 102 views
-1

我想改变我的小吃吧的颜色

snackbarView.setBackgroundColor(ContextCompat.getColor(context, Color.RED)); 

我得到这样的:

android.content.res.Resources$NotFoundException: Resource ID #0xffff0000 

凡肯定

为0xffff0000

代表RED.But w它不能找到这个资源? 有什么帮助吗?

+4

'Color.RED'是一个实际的颜色值,而不是资源名称。如果你想'Color.RED',直接使用它 - 'setBackgroundColor(Color.RED)'。 –

+0

完成,谢谢@MikeM。 其实我很困惑,因为他们提出了一个问题: http://stackoverflow.com/questions/34020891/how-to-change-background-color-of-the-snackbar –

+1

任何以'R.color'是项目中颜色资源的资源名称,对于那些使用'ContextCompat.getColor()'获取实际值的人员。但是,Color类有几个常量,例如Color.RED,Color.BLUE等,它们都是实际的颜色值。您不需要从资源中获取这些内容。 –

回答

2

试试这个: -

在你values.xml,创建colors.xml并添加以下行:

<color name="red">#FF0000</color> 

然后调用这个颜色是这样的: -

snackbarView.setBackgroundColor(ContextCompat.getColor(context,R.color.red)); 
0

你得到

资源$ NotFoundException:资源编号为0xffff0000

此异常由资源的API时,抛出该请求的资源不能被发现。

创建自定义colors.xml持有的色彩。

RES /价值/ colors.xml:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
<color name="red">#ff0000 </color> 

</resources> 

然后

setBackgroundColor(ContextCompat.getColor(context, R.color.red)); 

或简单的

setBackgroundColor(Color.parseColor("#ff0000")); 
0

尝试设置背景色这样的:

snackbarView.setBackgroundColor(ContextCompat.getColor(context, R.color.RED)); 
0

Color.RED是颜色不是ID。你应该这样做:

snackbarView.setBackgroundColor(Color.RED);

2

使用:snackbarView.setBackgroundColor(Color.RED);

不是:snackbarView.setBackgroundColor(ContextCompat.getColor(context, Color.RED));

原因:

看那official android developer siteit says that it need a color id.

所以,你可以直接给它添加一种颜色。无需为其添加ContextCompat.getColor()方法。

如果你想利用这一点,请使用有效的资源ID,而不是颜色标识作为的getColor方法的第二个参数。 因为从official website它说,

enter image description here

它需要的资源ID,而不是颜色标识。希望,现在,你可以理解这件事。

+1

虽然这段代码可能会回答这个问题,提供额外的[上下文](https://meta.stackexchange.com/q/114762)关于_how_和/或_why_它解决了这个问题将改善答案长期的价值。请记住,你正在为将来的读者回答这个问题,而不仅仅是现在问的人!请[编辑](http://stackoverflow.com/posts/43248434/edit)您的答案添加一个解释,并指出适用的限制和假设。它也不会提到为什么这个答案比其他答案更合适。 –

+0

谢谢。我会提供它。 –

0

您将Color.RED(一个int值)视为resourceId。逻辑错误! 只是使用Color.RED insted。 snackbarView.setBackgroundColor(Color.RED)

相关问题