을 변경하는 동안 :
android.content.res.Resources$NotFoundException: Resource ID #0xffff0000
확실히
0xffff0000을
은 RED를 나타냅니다. 그것은이 자원을 찾을 수 없습니다 하이? 도움이 되었습니까?
을 변경하는 동안 :
android.content.res.Resources$NotFoundException: Resource ID #0xffff0000
확실히
0xffff0000을
은 RED를 나타냅니다. 그것은이 자원을 찾을 수 없습니다 하이? 도움이 되었습니까?
이 시도
snackbarView.setBackgroundColor(ContextCompat.getColor(context,R.color.red));
당신은
자원 $ NotFoundException을 얻고있다 : 자원 ID 번호 0xffff0000
요청 된 자원을 찾을 수없는 경우에이 예외는 자원 API에 의해 발생합니다.
사용자 정의 colors.xml
은 색상을 유지합니다.
고해상도/값/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"));
배경을 설정해보십시오 다음과 같은 색상 :
snackbarView.setBackgroundColor(ContextCompat.getColor(context, R.color.RED));
Color.RED는 ID가 아닌 색상입니다. 이렇게해야합니다 :
snackbarView.setBackgroundColor (Color.RED);
사용 : snackbarView.setBackgroundColor(Color.RED);
하지 : snackbarView.setBackgroundColor(ContextCompat.getColor(context, Color.RED));
이유 : official android developer site에서
그래서 직접 색상을 추가 할 수 있습니다. ContextCompat.getColor() 메서드를 추가 할 필요가 없습니다.
이를 사용하려면 유효한 리소스 ID의 getColor에서 메서드의 두 번째 매개 변수로는 컬러 ID을 사용하십시오.그것이 말하는 때문에 official website에서 ,
는 자원 ID 색상이 아닌 ID를 필요로한다. 희망, 이제이 문제를 이해할 수 있습니다.
이 코드는 질문에 대답 할 수 있지만, _how_ 및/또는 _why_에 관한 추가 [컨텍스트] (https://meta.stackexchange.com/q/114762)를 제공하면 문제를 해결하여 답변을 향상시킬 수 있습니다 장기적인 가치. 지금 묻는 사람뿐만 아니라 앞으로 독자에게 질문에 답하고 있다는 것을 기억하십시오! 귀하의 답변을 설명에 추가하고 제한 사항과 가정이 적용되는지를 알려주십시오 (http://stackoverflow.com/posts/43248434/edit). 또한 왜이 답변이 다른 사람들보다 더 적절한지 언급하지 않아도됩니다. –
감사합니다. 나는 그것을 제공 할 것이다. –
Color.RED (int 값)를 resourceId로 취급합니다. 논리적 인 실수! 그냥 Color.RED insted를 사용하십시오.
<color name="red">#FF0000</color>
는 다음과 같이이 색상을 호출 : colors.xml을 만들, 당신의 values.xml에서
및 다음 줄을 추가 - : - snackbarView.setBackgroundColor(Color.RED)
'Color.RED'는 자원 이름이 아닌 실제 색상 값입니다. 'Color.RED'를 원하면'setBackgroundColor (Color.RED)'를 직접 사용하십시오. –
완료, 감사합니다 @MikeM. 실제로 여기에서 문제가 제기되어 혼란 스러웠습니다 : http://stackoverflow.com/questions/34020891/how-to-change-background-color-of-the-snackbar –
'R.color'로 시작하는 것 는 프로젝트의 컬러 리소스에 대한 리소스 이름이고, 실제 값을 얻기 위해'ContextCompat.getColor()'를 사용하는 리소스의 리소스 이름입니다. 그러나'Color' 클래스에는 실제 색상 값인'Color.RED','Color.BLUE' 등의 몇 가지 상수가 있습니다. 자원에서 가져올 필요가 없습니다. –