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

标签 java android android-linearlayout background-color

这可能是有史以来最简单的事情,但就我的生活而言,我还没有弄明白。

我有一个设置布局背景颜色的方法,但我想像处理可绘制资源一样将颜色作为参数传递。例如

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

setIcon(R.drawable.tuborg);

我希望能够用 color (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,即使 (int color) 也不起作用。另外,我正在尝试避免使用 Color.parse()。

这就是我使用函数的方式

setColor(R.color.colorAccent);

我有一个包含各种颜色代码的 xml。我希望能够调用此函数并更改背景颜色。

最佳答案

你可以试试这个:

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

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

一个好的做法是在 colors.xml(在 values 文件夹内)上定义颜色。

<?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 - 如何将颜色资源作为参数传递 (Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40771900/

相关文章:

按不同条件的 Java 搜索列表

java - 是否建议根据参数更改方法的返回类型?

android - Achartengine 条形图标签

java - 无法在 Android 中编辑裁剪后的照片

java - android:layout_alignParentBottom ="true"未按预期运行。

java - 如何在 OnButtonClick 上显示 ProgressBar 5 秒,然后显示 TextView?

android - 从服务启动 View ?

Android:点击按钮时刷新/更新另一个 Activity 的 fragment

android - 自定义线性布局

java - 对于大 n,java.lang.Math.pow(x, n) 的准确/精确度如何?