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颜色资源一起使用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- java – 无法捕获ConstraintViolationException
- java-将检索到的float值从外部文件转换为float数
- java 实现双向链表实例详解
- Java – 将图像转换为黑白 – 失败,颜色鲜艳
- java – EclipseLink(非OSGi)与EclipseLink JPA之
- disruptor-pattern – Java:使用Disruptor或不使
- Five ways to maximize Java NIO and NIO.2--ref
- springboot注入servlet的方法
- 如何将字符串转换为十六进制和十六进制转换为字符
- java – 在数据库中存储可序列化对象
热点阅读