加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何将颜色资源作为参数传递(Android)

发布时间:2020-12-15 04:48:28 所属栏目:Java 来源:网络整理
导读:这可能是最简单的事情,但对于我的生活,我还没有想到它. 我有一个方法来设置布局的背景颜色,但我想将颜色作为参数传递,就像我们使用可绘制资源一样.例如 public void setIcon (Drawable icon){ this.icon = context.getResources().getDrawable(icon);}setIco
这可能是最简单的事情,但对于我的生活,我还没有想到它.

我有一个方法来设置布局的背景颜色,但我想将颜色作为参数传递,就像我们使用可绘制资源一样.例如

public void setIcon (Drawable icon){
  this.icon = context.getResources().getDrawable(icon);
}

setIcon(R.drawable.tuborg);

我希望能够用颜色(R.color.id)做类似的事情.我试过了

public void setColor (Color color){
  layout.setBackgroundColor(context.getResources().getColor(color));
}

public void setColor (Color color){
  layout.setBackgroundColor(ContextCompat.getColor(color));
}

两者都要求int,even(int color)不起作用.另外,我试图避免使用Color.parse().

这就是我使用该功能的方式

setColor(R.color.colorAccent);

我有一个带有各种颜色代码的xml.我希望能够调用此函数并获得背景颜色更改.

解决方法

你可以尝试一下:

public void setColor (int colorId){
  layout.setBackgroundColor(ContextCompat.getColor(colorId));
}

在该方法中,colorId应该是颜色的六进制代码

一个好的做法是在colors.xml(内部值文件夹)中定义颜色.

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

在这种情况下,您将使用此函数:

setColor(R.color.red);

因此,无需创建“颜色”对象,您可以传递colors.xml中的值

此外,在您的情况下,您应该将方法setColor(Color aColor)修改为setColor(int aColor),以使其与xml颜色资源一起使用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读