代码之家  ›  专栏  ›  技术社区  ›  Shashank Degloorkar

从资源id获取颜色整数时出错

  •  0
  • Shashank Degloorkar  · 技术社区  · 7 年前

    我已经创建了一个自定义视图,它接受背景色剩余和阴影色剩余。但是当我转换资源ID以将它们存储在int变量中时。它给出的错误为

    Expected a color resource id (R.color.) but received an RGB integer 
    

    下面是我的setter方法

        @Override
        public void setBackgroundColor(@ColorRes int backgroundResId) {
            this.backgroundColor = ContextCompat.getColor(context, backgroundResId);
        }
    
        public void setShadowColor(@ColorRes int shadowColorId) {
            this.shadowColor = ContextCompat.getColor(context, shadowColorId);
        }
    

    使用时会显示相同的错误

    public void setBackgroundColor(@ColorRes int backgroundResId) {
        this.backgroundColor = context.getResources().getColor(backgroundResId);
    }
    
    1 回复  |  直到 7 年前
        1
  •  -1
  •   aLT    7 年前

    我想你的方法是错误的 setBackgroundColor . 您应该这样使用它:

    //some code
    setBackgroundColor(R.color.colorPrimary)
    //some code