【问题标题】:Define a custom color variable定义自定义颜色变量
【发布时间】:2020-09-27 06:14:52
【问题描述】:

我想在我的代码中全局更改一些按钮颜色。我似乎无法找到一种定义颜色变量然后为该变量分配颜色值的方法。

我试过这个 颜色 SelectedColor = new Color();

      f1.setBackgroundColor(Color.rgb(0, 0, 100));

我想使用 ColorSelected 代替 RGB 值,以便在启动时编辑该值。

          f1.setBackgroundColor(Color.ColorSelected);

【问题讨论】:

  • 请考虑阅读文档(甚至是 eclipse 在悬停时显示的提示)。 setBackgroundColor() 采用了 integer 参数。您使用SelectedColor(作为Color 的静态成员)的方式是错误的。其次,setBackgroundColor 不能将Color 对象作为参数。请改用资源 ID。按照blackbelt 的建议定义颜色。然后,使用f1.setBackgroundColor(getResources().getColor(R.color.definedColorName))
  • 如果他需要动态创建颜色怎么办? “根据光传感器读数改变背景颜色”

标签: android android-layout


【解决方案1】:

您可以使用values/colors.xml。比如

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="menu_background">#666666</color>
</resources>

【讨论】:

  • Android Studio 在创建新项目时没有添加文件 colors.xml,所以我将自定义颜色添加到 strings.xml,但是当将其用作 @string/mycolor 时,应用程序会停止。现在它适用于 colors.xml。
  • Eclipse 都不创建该文件。该文件必须手动创建,@JoseManuelAbarcaRodríguez
【解决方案2】:

“我似乎无法很好地定义颜色变量,然后为该变量分配颜色值。”

这是定义颜色变量的方法:

int selectedColor = Color.rgb(0, 0, 100);

并使用它:

f1.setBackgroundColor(selectedColor);

【讨论】:

    【解决方案3】:

    您必须在颜色标签中添加属性type="color"

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <color type="color" name="menu_background">#666666</color>
    </resources>
    

    所以,您可以使用 xml 文件中的颜色为 "@color\menu_background" 也来自java代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-11-01
      • 2018-07-20
      • 2022-11-16
      • 2019-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多